Python 中的流程控制语句:
在生活中,我们会遇到很多不同的选择,我们需要考虑如何做出正确的选择。同样在python程序中,也会遇到需要选择的时候。这就要用到python中的流程控制语句。python中的流程控制语句结构有,顺序流程语句, 分支流程控制语句和循环流程控制语句。这里主要介绍分支流程控制语句
分支流程控制语句:
- 工作原理:根据条件表达式的结果执行相应的代码
- 单分支结构
语法:
"""
if 条件表达式:
代码块
"""
执行流程:如果条件表达式成立True, 执if中的代码块,否则不执行
实例:定义一个变量score, 判断score是否大于等于60,如果大于等于60,考试及格,不用补考,否则要补考
# 用到之前文章说的强制类型转换和比较运算符
score = int(input('请输入一个成绩:')) # 输入 65
if score >= 60: # 65 >= 60 条件表达式成立 True
print('及格,不需要补考!') # 输出打印结果
if score < 60:
print('不及格,需要补考!')
- 双分支结构:
语法:
'''
if 条件表达式:
代码块
else:
代码块
'''
执行流程:如果if中的条件表达式成立True,则执行if中的代码块。如果if的条件表达式不成立False,则执行else中的代码块
实例:定义一个变量age,判断年龄是否正确,要求正确年龄在1–120之间
# 用到之前文章说的强制类型转换和比较运算符
age = int(input('请输入年龄:')) # 输入 65
if age >= 1 and age <= 120: # 65 >= 1 and 65 <= 120 条件表达式成立 True
print('合法年龄!') # 输出打印结果
else:
print('不合法年龄!')
# 代码中的 if条件表达式可以换为这种方式:1 <= age <= 120,更加优化
- 多分支语句:
语法:
if 条件表达式1:
代码块1
elif 条件表达式2:
代码块2
elif 条件表达式3:
代码块3
.....
else:
代码块4
执行流程:
如果条件表达式1 成立True,执行if块中的代码块1,执行完成后不再执行后边的elif中的代码。
如果条件表达式1 不成立False,则判断条件表达式2是否成立,如果成立则执行代码块2。
否则继续判断条件表达式3是否成立。依次类推,如果所有的elif都不成立,则执行else。
实例:成绩
需求:根据学生成绩判断学生成绩所在的级别
score = eval(input('学生成绩:'))
# 由于成绩有可能为int 或 float 所以使用eval()进行类型转换
if 90 <= score <= 100:
print('优秀')
elif 80 <= score < 90:
print('良好')
elif 70 <= score < 80:
print('中等')
elif 60 <= score < 70:
print('及格')
else:
print('不及格')
- 分支嵌套:
语法:
if 条件表达式1:
代码块1
if 条件表达式 2:
代码块2
else:
代码块3
else:
代码块4
执行流程:如果条件表达式1成立True,执行代码块1,如果条件表达式2 成立True,执行代码块2,否则执 行代码块3。如果条件表达式1 不成立,直接执行代码块4
实例:买票进火车站
需求:
(1)定义一个车票has_ticket,表示是否有车票,定义一个knife_length 刀的长度
(2)检查火车票是否满足,否则不让上车
(3)检查行李是否有违禁品,否则不让上火车
has_ticket = True # 表示车票正确
knife_length = 23
if has_ticket:
print('车票通过')
if knife_length >= 20:
print('刀具超过20,不能上车')
else:
print('所有安检通过,可以上车')
else:
print('没有车票不能进入')
"""
执行结果:
车票通过
刀具超过20,不能上车
"""
- 三元表达式:
语法:
a = y if x else z
执行流程:如果x是True,将y赋值给x,否则将z赋值给x
实例: 如果 gender == 1, 将 男赋值给 str1 否则将 女赋值给 str1
gender = 1
str1 = '男' if gender == 1 else '女'
"""
执行结果:
gender = 1:
输出结果: 男
gender = 0:
输出结果:女
"""