分支结构可理解为选择结构,即根据条件选择性的去执行。
一、单分支
(1)、执行规则
-
如果if的条件为真,则执行缩进的代码块。
if True:
print("条件为真,执行代码块")
print("if中的代码块都执行")
# 结果 : 条件为真,执行代码块
# if中的代码块都执行
if 5 > 1 and None or -1 :
print("真")
print("执行")
print("if之外的代码块")
# 结果 真
# 执行
# if之外的代码块
-
如果if的为假,则不执行。
if 10 > 20:
print("条件为假不执行")
-
不执行的情况None、False、空字符符串、0。
if "":
print("不执行的情况None、False、空字符符串、0")
-
pass 代表此处有内容,执行时解释器不报错。
if True:
pass
(2) 、分支嵌套
if True :
print(1)
if 0 :
print("条件为假,不执行")
if True :
print("和上一个条件为假的分支的模块同级别,不执行")
if 56 or 67 :
print("2条件为真,可以执行")
if 56 > 10 :
print("3条件为真,可以执行")
print("if模块外,执行")
# 结果 1
# 2条件为真,可以执行
# 3条件为真,可以执行
# if模块外,执行
(3)、实战
输入第一个数字,如果这个数为奇数,则再次输入两个数字; 如果第二个数字比第三个数字大,则输出第一个数字与第三个数字之差。
num1 = int(input("请输入第一个数:"))
if num1 % 2 :
num2 = int(input("请输入第二个数:"))
num3 = int(input("请输入第三个数:"))
if num2 > num3:
print(f"{num1}与{num3}的差是{num1-num3}")
# 结果 请输入第一个数:9
# 请输入第二个数:98
# 请输入第三个数:45
# 9与45的差是-36
二、双分支
-
if else 双分支 必须二选一。
-
if为真执行if的语句块,否则执行else的语句块。
-
else 不能能单独开始,必须以if开始。
-
else 的上一个模块要与if连续 中间不要有与if并齐的语句。
if True :
print("A") # A
if 5 > 20 :
print("B")
else:
print("C") # C
if 3 :
print("D") # D
else:
print("E")
# else 前一个模块需要和if连接,中间不可加入其他语句
else:
print("F")
if None :
print("G")
else:
print("H")
三、多分支
(1)、使用规则
-
if elif else 多选一, 可以一个也不选(即没有else)
-
if必填,elif至少有一个,可以没有else
-
有if就要有条件,即elif后也要有条件和冒号
-
多选一,选择一个后,以后代码都不再执行
value = 10
if value == 3:
print("A")
elif value == 5:
print("B")
elif value == 10:
print("C")
elif value == 10:
print("D")
else:
print("E")
# 结果: C
(2)、实战
输入一个成绩,成绩在[0, 60)为不及格,[60, 75)为及格,[75, 90)为良好,[90, 100]为优秀,其他为不合法。
# 在0~100之间,判断成绩等级;
# 根据多分支语句的特点(执行完一条后,下面不再执行),可优化程序
grade = float(input("请输入成绩:"))
if 0 <= grade <= 100
if 90 <= grade:
print("优秀")
elif 75 <= grade:
print("良好")
elif 60 <= grade:
print("及格")
else:
print("不及格")
else:
print("输入不合法!")
# 结果: 请输入成绩:120
# 输入不合法!
# 请输入成绩:75
# 良好