一、语法
- if:
if判断其实是在模拟人做判断。就是说如果这样干什么,如果那样干什么。对于ATM系统而言,则需要判断你的账号密码的正确性。
if 条件: 代码1 代码2 代码3 ... # 代码块(同一缩进级别的代码,例如代码1、代码2和代码3是相同缩进的代码,这三个代码组合在一起就是一个代码块,相同缩进的代码会自上而下的运行)
例如:输入姑娘的年龄后,进行以下判断:
- 如果姑娘小于18岁,打印“未成年”
如果姑娘大于18岁小于25岁,打印“表白”
如果姑娘大于25岁小于45岁,打印“阿姨好”
如果姑娘大于45岁,打印“奶奶好”
while 1: age=input('请输入女孩的年龄') age=int(age) if age >=45: print('奶奶好') if age >=25 and age<45: print('阿姨好') if age >=18 and age<25: print('表白') if age <18: print('未成年')
- if...else:
if...else表示if成立代码成立会干什么,else不成立会干什么。
- if...elif...else
if...elif...else表示if条件1成立干什么,elif条件2成立干什么,elif条件3成立干什么,elif...否则干什么。
例如:成绩评判
如果 成绩>=90,打印"优秀"
- 如果 成绩>=80 并且 成绩<90,打印"良好"
- 如果 成绩>=70 并且 成绩<80,打印"普通"
其他情况:打印"差"
# 成绩评判 score = input("your score: ") score = int(score) if score >= 90: print('优秀') # elif score >= 80 and score < 90: elif score >= 80: print('良好') # elif score >= 70 and score < 80: elif score >= 70: print('普通') else: print('差')
二、while循环
循环就是一个重复的过程,我们人需要重复干一个活,那么计算机也需要重复干一个活。ATM验证失败,那么计算机会让我们再一次输入密码。这个时候就得说出我们的wile循环,while循环又称为条件循环。
while+break
循环的目的是为了让计算机和人一样工作,循环处理事情.
break的意思是终止掉当前层的循环,执行其他代码。
例如:
while True: user_db = 'nick' pwd_db = '123' inp_user = input('username: ') inp_pwd = input('password: ') if inp_user == user_db and pwd_db == inp_pwd: print('login successful') break else: print('username or password error') print('退出了while循环')
username: nick
password: 123
login successful
退出了while循环while+continue
continue的意思是终止本次循环,直接进入下一次循环。
continue不能加在循环体的最后一步执行的代码,因为代码加上去毫无意义,如下所示的continue所在的位置就是毫无意义的。
ps:注意是最后一步执行的代码,而不是最后一行。
while循环的嵌套
ATM密码输入成功还需要进行一系列的命令操作,比如取款,比如转账。并且在执行功能结束后会退出命令操作的功能,即在功能出执行输入q会退出输出功能的while循环并且退出ATM程序。
==例如:猜年龄游戏升级版,有以下三点要求:==
允许用户最多尝试3次
每尝试3次后,如果还没猜对,就问用户是否还想继续玩,如果回答Y或y, 就继续让其猜3次,以此往复,如果回答N或n,就退出程序
如果猜对了,就直接退出
n=0 age=20 while n<4: guess_age=int(input(f'请输入年龄,你还有{3-n}次机会哦:')) if guess_age==age: print('猜对了,退出程序') break else: print('猜错了') n=n+1 if n==3: a=input('你已经输错了3次,如想继续玩,请输入y或者Y;' '不继续请输入n或者N:') while 1: if a=="n"or a=="N": print('不猜了,退出程序') n=4 break elif a=='y'or a=='Y': n=0 break
三、for循环
字典也有取多个值的需求,字典可能有while循环无法使用了,这个时候可以使用我们的for循环。
for循环的循环次数受限于容器类型的长度,而while循环的循环次数需要自己控制。for循环也可以按照索引取值。
例如:打印1-100之间的偶数:
for i in range(1,101): if i%2!=1: print(i)
for+continue
for循环调出本次循环,进入下一次循环
for+break
for循环调出本层循环。
for循环嵌套
外层循环循环一次,内层循环循环所有的
==例如:打印如下所示9*9乘法表:==
''' 1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=9 4*1=4 4*2=8 4*3=12 4*4=16 5*1=5 5*2=10 5*3=15 5*4=20 5*5=25 6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81 '''
for i in range(1,10): for j in range(1,i+1): print(f'{i}','*',f'{j}','=',i*j,end=' ') print()
for+else
for循环没有break的时候触发else内部代码块。
for循环实现loading
import time print('Loading', end='') for i in range(6): print(".", end='') time.sleep(0.2)
loading......
==例如:打印如下所示金字塔:==
''' # max_level=5 * # current_level=1,空格数=4,*号数=1 *** # current_level=2,空格数=3,*号数=3 ***** # current_level=3,空格数=2,*号数=5 ******* # current_level=4,空格数=1,*号数=7 ********* # current_level=5,空格数=0,*号数=9 # 数学表达式 空格数 = max_level-current_level *号数 = 2*current_level-1 '''
max_level=5 for i in range(1,6): current_level=i a=5-i b=2*i-1 print(' '*a,'*'*b)
来源:https://www.cnblogs.com/gongjingyun123--/p/10908459.html