当前位置: 首页 > news >正文

Python 第三节 流程控制

目录

1.分支结构 条件控制

2.循环语句

3.循环控制语句

4.嵌套循环


控制代码执行的顺序

  • 顺序结构
  • 分支结构
  • 循环结构

1.分支结构 条件控制

让代码有自主选择的能力, 当满足某个条件的时候执行对应的操作

1.1 if语句

语法格式
if 判断条件:执行语句(当判断条件为真的时候执行当前模块的语句)判断条件 必须是一个布尔值, 可以是表达式或者是具体的值
但是最终都会被转换为布尔值
表达式就是运算符+运算元构成的语句  ==  语句执行会得到一个结果的都是表达式

1.2 if  else语句

# 二选一执行代码
语法格式
if 判断条件:条件成立执行
else:条件不成立的情况if age >= 18: # 条件满足print('恭喜你已成年,可以进入该网站')
else:print('请在家长的陪同下观看')print('我要偷偷看')

1.3 多种情况的分支

# 多条件判断
# 语法格式
if-elif-elseif 条件判断:
#     第一个条件满足
elif 判断条件2:
#     第二个条件满足执行
elif 判断条件3:
#     第三个条件满足执行
else:
#     以上条件都不满足的时候执行
# 条件判断语句的执行结果一定只有一个
# 多个分支一定要注意条件优先级, 优先最难实现的放到第一个判断# 不到60分奖励男女混合双打30分钟
# 做个分数奖励机制, 如果分数大于 60 奖励一个蜜汁小汉堡
#  如果分数大于 70 奖励 网吧5日游戏
# 如果分数大于 80 分奖励一套试卷
# 如果分数大于 90 分 奖励500元
score = 99
if score > 60:print('汁小汉堡')
elif score > 70:print('网吧5日游戏')
elif score > 80:print('一套试卷')
elif score > 90:print('奖励500元')
else:print('男女混合双打30分钟')# 代码出现了问题,分数超过60分以后都是蜜汁小汉堡
# 两种解决方式
if score > 60 and score <= 70:print('汁小汉堡')
elif score > 70 and score < 80:print('网吧5日游戏')
elif score > 80 and score <= 90:print('一套试卷')
elif score > 90:print('奖励500元')
else:print('男女混合双打30分钟';)# 优化方案2 按照优先级执行
jiangli = '男女混合双打30分钟'
if score > 90:jiangli = '汁小汉堡'
elif score > 80:jiangli ='网吧5日游戏'
elif score > 70:jiangli = &apos;一套试卷'
elif score > 60:jiangli = '奖励500元'
else:jiangli ='男女混合双打30分钟'# 我想知道最终他得到了什么奖励
print(jiangli)

1.4 嵌套 分支

#  多条件的判断 , 嵌套条件
#  用于复杂条件的判断
#  银行取款验证
#  首先你需要准备好银行卡,其次需要有 余额has_card = False # 有没有银行卡
balance = 2000 # 余额
get_money = 20000 # 取款金额# 先判断用户是否有银行卡
if  has_card:# 取款金额一定要小于等于余额if get_money <= balance:print('取款成功')else:print('余额不足')
else:print('请插入银行卡')

1.5 三元运算

# 三元运算符
# 简化if else 语句的方式
# if 写法
age = 15
if age >= 18:print(''成年)
else:print('未成年')# 三元运算简写规则
# 条件为真的结果 判断语句 else 条件为假的结果
print('成年') if age>=18 else print('未成年')# 简化
print('成年' if age >= 18 else '未成年')# 逻辑运简化if else
print(age >= 18 and '成年' or '未成年')num = 5
result = 0
# 判断数值是不是偶数
if num % 2 == 0:result = '偶数'
else:result = '奇数'
print(result)# 三目简写
num = 5
result = '偶数'; if num % 2 == 0 else '奇数'
print(result)

2. 循环语句


2.1 while 循环

# while 循环
# 应用场景 : 不确定循环次数的时候可以使用 while 循环
# 语法格式
#
# while 循环判断条件:
#     执行循环体内的所有代码
#     循环什么时候停止取决于 判断条件什么时候为假的
#     使用循环的时候一定要确保 循环判断条件是有机会为 False 的# 需要打印10次哈哈
print('哈哈')
print('哈哈')
print('哈哈')
print('哈哈')
print('哈哈')
print('哈哈')while 写法
# 死记硬背 那几个会转换为 布尔值为0的值
num = 1
while num:print(&apos;哈哈&apos;)执行的过程中想办法让 num 可以为假num += 1if num >=11:num = False# 简化写法
num = 9
while num:print('哈哈')# 执行的过程中想办法让 num 可以为假num -= 1 # 当 num 等于0的时候, 布尔值就为 False#  优化
num = 1
while num <= 11:print(哈哈'')# 执行的过程中想办法让 num 可以为假num += 1

2.2 for 循环

# for 循环
# 应用场景 :  遍历已知序列或者确定次数的循环# 语法
# for 变量名 in 可迭代对象:
#     循环体
#
# 可迭代对象也就可循环数据 : 字符串,列表,元组,字典,集合
# 变量名 : 每次循环拿到的可迭代对象里的元素# 有一个列表存储用户的姓名,现在有个需求,需要做一个点名系统
# 一次点出每个人的名字
name_arr = ['路遥','阿飞','朱雀']# 一次输出列表中的名字
print(name_arr[0])
print(name_arr[1])
print(name_arr[2])
print(name_arr[3])# for 循环实现
for item in name_arr:print(item) # 列表中的每一个值# 遍历字典
person = {"name" : 'luyao'"age" : '18'"sex" : '男'"fd" : ['xuxing','afu','zhuque','jiuwei']
}for item in person:# 遍历字典的时候拿到的是键名print(f'属性名{item},值{person[item]}')# for进行固定次数的循环
# range(起点,终点,步长) 用于创建起点-终点次数的循环, 左闭右开 包含开始不包含结束
# 步长默认为1 ,数值每次循环新增1 , 指定该值以后就按照指定的步长进行新增
# range(num) 单独一个值表示终点# for num in range(5):
#     print('哈哈')for num in range(0,5):print('哈哈',num,'表示当前range值')for num in range(0,5,2):print('哈哈',num,'表示当前range值')
#输出
哈哈 0 表示当前range值
哈哈 2 表示当前range值
哈哈 4 表示当前range值

3. 循环控制语句

3.1 break 

作用:立即终止整个循环


# break
# 立即终止跳出整个循环
numbers = [2,4,3,6,9,8,7]# # 需要找出列表中的奇数值
for num in numbers:if num % 2 != 0:# 奇数值print(num) # 3 9 7# 我只需要找到第一个为奇数的值就行
for num in numbers:if num % 2 != 0:# 奇数值# print(num) # 3break #跳出整个循环

3.2continue

作用:跳过当前迭代,进入下一次循环

# continue 跳出当次循环,进入下一个循环
# 需要找出列表中的奇数值
for num in range(30):if num % 2 != 0:print(num)# continue 写法
for num in range(10):if num % 2 == 0:continue# continue # 跳出当次循环进入下一个print(num)

3.3 pass

作用:占位语句,保持代码结构完整

# pass 占位符  当特殊语句内暂时没想好该写什么的时候可以用pass进行占位
if num:pass 
print(1)

3.4 循环else子句

特性:循环正常结束(非break中断)时执行

# 循环语句的 else 语法
# 循环正常结束时候(非break中断)执行 else 区域的代码
for k in range(5):print(k)
else:print(&apos;循环执行完毕&apos;)while num:print(1)
else:print(&apos;循环执行完毕&apos;)

4. 嵌套循环

# 嵌套循环
# 循环嵌套指的就是循环内嵌套一个循环, 循环执行一次,循环体内的循环在完整执行一边
# 外面执行一次里面执行10次 10 * 10
for i in range(10):# print(i)for k in range(10):# print(k)for j in range(10):pass
&apos;&apos;&apos;
代码执行的流程
第一次循环
i = 0 k = 0 j = 0 - 9
第二次
i = 0 k = 1 j = 0 - 9
第三次
i = 0 k = 2 j = 0 - 9
....
i = 1 k = 1 j = 0 - 9
&apos;&apos;&apos;

感谢大家的观看!

相关文章:

  • UDP猜数字游戏与TCP文件传输案例解析
  • AI日报 - 2025年04月17日
  • Python Cookbook-6.5 继承的替代方案——自动托管
  • Vue 3 路由配置使用与讲解
  • 脚本-QQ批量发送消息(图片和文字)
  • 23黑马产品经理Day01
  • 用户态与内核态多个维度的区别
  • 爬虫(基本知识介绍,urllib库的说明)
  • 波束形成(BF)从算法仿真到工程源码实现-第十二节-总结
  • Redis原理与Windows环境部署实战指南:助力测试工程师优化Celery调试
  • Java Bean演进历程:从POJO到Spring Boot配置绑定
  • Vue3 SSR生物启发架构:仿生渲染与DNA流式编码
  • 解决JSON格式数据大小写问题,以及@JsonProperty 和@JSONField序列化的区别
  • TVS管与ESD保护二极管详解:原理、区别与应用选型
  • 广东广州一家IPO资产重组疑点重重,信息披露真实性存疑
  • 通过高斯分布概率密度函数寻找到数据中的异常点
  • TLS/SSL 弱密码套件中危漏洞修复
  • Security 权限控制的基本流程
  • 基于 Python 的 ROS2 应用开发全解析
  • 【扩散模型(十三)】Break-A-Scene 可控生成,原理与代码详解(中)Cross Attn Loss 代码篇
  • 学做网站论坛插件/谷歌paypal官网注册入口
  • 科网站建设/网站关键词百度自然排名优化
  • 淄博外贸网站建设公司/海外推广方法有哪些
  • 网站开发后端技术/百度推广点击一次多少钱
  • 自己做网站怎么加定位/直通车怎么开效果最佳
  • 门户网站有哪些类型/百度广告多少钱