5. 流程控制
1. 流程控制的分类
1.1 顺序结构:
从上往下依次执行代码
1.2 分支结构:
根据条件判断的结果作出不同的执行流程
单if分支
if 条件:
条件成立之后执行的子代码
子代码可以有多行
goals = 95 if goals > 91: print('good')
if、else分支
if 条件:
条件成立之后执行的子代码
子代码可以有多行
else:
条件不成立执行的子代码
子代码可以有多行
goals = 91 if goals >= 95: print("real qiuyu") else: print('fake qiuyu')
if、elif、else分支
if 条件1: 条件1成立时执行的子代码 子代码可以有多行 elif 条件2: 条件1不成立;;;条件2成立执行的子代码 子代码可以有多行 elif 条件3: 条件1和条件2都不成立;;;条件3成立执行的子代码 子代码可以有多行 else: 上述条件都不成立;;;执行的子代码 子代码可以有多行
score = int(input('请输入成绩: ')) if score < 60: print('不及格') elif 60 <= score < 70: print('及格') elif 70 <= score <80: print('中等') else: print('优秀')
1.3 循环结构
1.3.1 while循环
while 条件: 条件成立之后执行的循环体代码 1.判断条件是否成立,如果成立则执行循环体代码 2.循环体代码执行完毕后,再次判断条件是否成立; 如果成立则继续执行循环体代码; 如果不成立则跳出循环
while+continue的应用
用于结束本次循环,直接开始下一次循环
while+break的应用
当程序执行达到某一条件时就结束本层循环
# 当用户名和密码输入正确时,显示登录成功,并且结束循环,按顺序执行同级代码; # 输入错误时,显示用户名或密码错误,无限获取输入,直到正确 while True: # 条件恒成立,无限循环 name = input("What is your name:") pwd = int(input("enter your password:")) if name == "messi" and pwd == 91: print("登录成功") break # 结束本层循环,按顺序执行循环同级打印real qiuyu代码 else: print("登录失败,重新输入用户名密码") print("real qiuyu")
标志位的应用
# 打印0~10的数字,当数字为3时不打印,跳出本次循环,当数字为9时结束循环
num = 0
status = True
while status:
if num == 3:
print('已跳出数字为3的循环')
num += 1
elif num == 9:
print('当前num为9,结束循环')
status = False
else:
print(num)
num += 1
while循环练习题
给定一个确认的数字,让用户猜测,猜大了猜小了给予提示,
错误的时候让用户重复尝试 3 次
3次全部错误再结束程序
3次结束以后让用户选择是否再继续猜
继续猜再给他 3 次机会
# goals = 95 fail_times = 0 tag = True while tag: imagine = int(input('请猜测进球数量,只能输入整数:')) if imagine == 95: print('正确') break else: if imagine > 95: print('猜多了') else: print('猜少了') fail_times += 1 if fail_times == 3: status = True while status: info = input('已错3次,输入y继续3次,输入n结束:') if info == 'y': print('还剩3次机会') status = False elif info == 'n': tag = False status = False else: print('输入格式错误,请重新输入') if fail_times == 6: break
使用while循环遍历列表的每个元素
1.3.2 for循环
预备知识:range函数
range可以生成一个指定区间的数字列表
range用法 # 用法1:括号内只写一个数字,默认从0开始,顾头不顾尾 for a in range(10): print(a) # 依次打印0~9 # 用法2:括号内写两个数字,自定义起始位置,顾头不顾尾 for b in range(5, 10): print(b) # 依次打印5~9 # 用法3:括号内写三个数字,第三个数字为等差数列的公差,默认为1 for c in range(1, 10, 2): print(c) # 依次打印1 3 5 7 9
for循环在遍历字典的时候默认拿到的是字典的键
1.4 三元运算
例:比较两个数的大小
a = 10 b = 20 if a > b: print(a) else: print(b)
三元表达式优化代码
a = 10 b = 20 print(a if a > b else b)
语法格式:为真的结果 if 条件 else 条件为假的结果
用到元组或者字典上
布尔值 真 取数字1 假 取数字0
布尔值 真 取数值True 假 取数值False
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!