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 = '一套试卷'
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('哈哈')执行的过程中想办法让 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('循环执行完毕')while num:print(1)
else:print('循环执行完毕')
4. 嵌套循环
# 嵌套循环
# 循环嵌套指的就是循环内嵌套一个循环, 循环执行一次,循环体内的循环在完整执行一边
# 外面执行一次里面执行10次 10 * 10
for i in range(10):# print(i)for k in range(10):# print(k)for j in range(10):pass
'''
代码执行的流程
第一次循环
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
'''
感谢大家的观看!