Python自学,Day1Python基础

学习资料来源:博客园 金角大王

 2018.7.22

1、用户输入,并打印输出

1 username=input("username:")
2 password=input("password:")
3 print(username,password)

备注:有种大学学习C语言的即视感,先输入XXX,后执行XXX...

2、格式化输出

(1)、 '''+变量+'''的方式实现

 1 name=input("name:")
 2 age=input("age:")
 3 job=input("job:")
 4 salary=input("salary:")
 5 
 6 info='''
 7 ------ info of '''+name+'''-------
 8 Name:'''+name+'''
 9 Age:'''+age+'''
10 Job:'''+job+'''
11 Salary:'''+salary+'''
12 '''
13 print(info)

优缺点:开启多个内存空间,效率底下,尽量少用

(2)、%s的方式

name=input("name:")
age=input("age:")
job=input("job:")
salary=input("salary:")

info='''
---------info of %s---------
Name:%s
Age:%s
Job:%s
Salary:%s
'''%(name,name,age,job,salary)
print(info)

备注:

1、%s为占位符,其中s代表string,%(name,name,age,job,salary)必须与占位符的个数相同,否则会报错

2、%d,d代表只能是数字,不是数字类型则会报错,用于检测数据类型

3、%f,f代表是浮点

  问题 :使用%d时,需注意,input默认的时string,即使输入的是数字

 1 age=input("age:") 2 print(type(age)) 

  问题结果:

 1 age:30 2 <class 'str'> 

  解决:强至转换数据类型

1 age=input("age:")
2 age=int(age)#强制转换成数据类型,str->int
3 print(type(age))

  结果:

 1 age:30 2 <class 'int'> 

方法2的可调整为

 1 name=input("name:")
 2 age=input("age:")
 3 age=int(age)#强制转换成数据类型,str->int
 4 job=input("job:")
 5 salary=input("salary:")
 6 
 7 info='''
 8 ---------info of %s---------
 9 Name:%s
10 Age:%d
11 Job:%s
12 Salary:%s
13 '''%(name,name,age,job,salary)
14 print(info)

备注:age只能输入整数,输入小数则会出现无法执行数据类型转换

(3)、{变量}的方式实现

 1 name=input("name:")
 2 age=input("age:")
 3 job=input("job:")
 4 salary=input("salary:")
 5 
 6 info='''
 7 ---------info of {_name}---------
 8 Name:{_name}
 9 Age:{_age}
10 Job:{_job}
11 Salary:{_salary}
12 '''.format(_name=name,
13            _age=age,
14            _job=job,
15            _salary=salary)
16 print(info)

备注:_name类似函数的定义变量的赶脚...

另一种写法

 1 # Author:Shang
 2 # 用户输入,格式化输出
 3 name=input("name:")
 4 age=input("age:")
 5 job=input("job:")
 6 salary=input("salary:")
 7 
 8 info='''
 9 ---------info of {0}---------
10 Name:{0}
11 Age:{1}
12 Job:{2}
13 Salary:{3}
14 '''.format(name,age,job,salary)
15 print(info)

备注:类似数组的方式,缺点是如果数据较多,则该方法不合适

3、密码加密显示

1 import getpass #引用标准库getpass
2 
3 username=input("username:")
4 password=getpass.getpass("password:")
5 
6 print(username,password)

备注:getpass在Pycharm中不好用、不好用...(什么鬼?),但是在shell中可用(为什么我在shell中也不好用呢?甚至奇怪~)

4、if elif else

_username="shang"
_password="123456"

username=input("username:")
password=input("password:")

if username !=_username:
    print("用户名不正确")
elif password != _password:
    print("密码有误")
else:
    print("欢迎回来 {name}".format(name=username))

需注意,书写是,需要有严格的格式要求

5、Game:使用if-else猜年龄

 1 age_of_ace=30
 2 
 3 guess_age=int(input("guess age:")) #比较时,不能使用str进行比较
 4 
 5 if guess_age > age_of_ace:
 6     print("think younger")
 7 elif guess_age < age_of_ace:
 8     print("think older")
 9 else:
10     print("yes,you get it!!!")

备注:作比较时,需要需讲比较双方的数据类型转化成一致

6、while循环

要求:错误循环三次后,结束游戏;猜对之后,直接结束

 1 age_of_ace=30
 2 count=0
 3 
 4 while count<3:
 5     guess_age=int(input("guess age:")) #比较时,不能使用str进行比较
 6     if guess_age > age_of_ace:
 7         print("think younger")
 8     elif guess_age < age_of_ace:
 9         print("think older")
10     else:
11         print("yes,you get it!!!")
12         break
13     count += 1
14 else:
15     print("oh,no! the game is over~")

备注:while-else的用法,这个略屌,跳出while之后,进行else的流程

7、while的应用

要求:在错误3次后,确认是否需要继续,如果继续,则继续进行循环,否则停止游戏

 1 age_of_ace=30
 2 count=0
 3 
 4 while count<3:
 5     guess_age=int(input("guess age:")) #比较时,不能使用str进行比较
 6     if guess_age > age_of_ace:
 7         print("think younger")
 8     elif guess_age < age_of_ace:
 9         print("think older")
10     else:
11         print("yes,you get it!!!")
12         break
13     count += 1
14     if count==3:
15         result=input("do you want to try again? Y/N:")
16         if result=="Y":
17             count=0
18 else: #while跳出后,进行else
19     print("the game is over")

在最后判断是否继续,当用户选择Y时,则清空循环次数,继续进行循环;其他选择时,则结束游戏

8、for循环

语法:for i in range(3)--i从0开始,依次递增,直至i>=3为止

 1 age_of_ace=30
 2 
 3 for count in range(3):
 4     guess_age=int(input("guess age:")) #比较时,不能使用str进行比较
 5     if guess_age > age_of_ace:
 6         print("think younger")
 7     elif guess_age < age_of_ace:
 8         print("think older")
 9     else:
10         print("yes,you get it!!!")
11         break
12 else:
13     print("oh,no! the game is over~")

备注:当不满足条件跳出for循环后,则执行最后的else;但是当break跳出后,则不执行最后一个else

9、for的间断循环执行

  每隔1个数执行一次

1 for i in range(0,10,2):
2     print("loop",i)
#执行结果
loop 0
loop 2
loop 4
loop 6
loop 8

备注:其中(0,10,2),0代表开始的数值,10代表循环的此处,2代表步幅间距

10、continue 跳出本次循环继续进行下次循环

break 跳出整个循环

1 for i in range(0,10):
2     if i<5:
3         print("loop",i)
4     else:
5         continue
6     print("continue的应用")
 1 #结果
 2 loop 0
 3 continue的应用
 4 loop 1
 5 continue的应用
 6 loop 2
 7 continue的应用
 8 loop 3
 9 continue的应用
10 loop 4
11 continue的应用

备注:只打印5次,后续的打印,被continue给跳过

原文地址:https://www.cnblogs.com/ace722/p/9348933.html