顺序结构虽然能解决很多问题,但是遇到需要逻辑判单选择的时候,就不得不使用分支结构。
分支结构关键在于分支判断条件和程序流程。
废话不多说,下面介绍一下if、elif、else的使用方法:
if语句的使用(if语句也可以单独使用,也可以配合elif 和else使用,但是elif 和else不得脱离if使用):
# 通过年龄判断是否成年
age = 18
if age >= 5:
print('成年')
else:
print('未成年')
结果如下:
这里需要注意的是,下面的执行语句需要缩进。如果需要更多的分支,可以使用下面结构:
if 判断条件:
执行语句
elif 判断条件:
执行语句
......
elif 判断条件:
执行语句
else:
执行语句
实例:
# 通过年龄判断学习阶段
age = 18
if age < 6:
print('未上学')
elif 6 <= age < 12:
print('小学生')
elif 12 <= age < 18:
print('中学生')
elif 18 <= age < 22:
print('大学生')
else:
print('其他')
嵌套多个分解结构
if 判断条件:
执行语句
else:
执行语句
如下:
import random
# 随机获得一个1~9之间的整数
x = random.randrange(1, 10)
if x >= 7:
y = 2 * x
else:
if x >= 4:
y = 3 * x
else:
y = 4 * x
print(f'x等于{x}时,y等于{y}')
下面是一些比较有意思的例子:
例1:
""""
百分制成绩转化为等级制成绩
要求:
90分以上:A
80分-89分:B
70分-79分:C
60分-69分:D
60分以下:不合格
"""
score = float(input('请输入成绩:'))
if score >= 90:
grade = 'A'
elif score >= 80:
grade = 'B'
elif score >= 70:
grade = 'C'
elif score >= 60:
grade = 'D'
else:
grade = '不合格'
print('成绩:', grade)
运行结果:
例2(这里我使用中文作为变量名,虽然python允许这样做,但是不推荐这样使用哦~):
"""
判断输入的边长能否构成三角形,如果能则计算出三角形的周长和面积
其中已知三边求面积,运用的是海伦公式
"""
side1 = float(input('side1 = '))
side2 = float(input('side2 = '))
side3 = float(input('side3 = '))
# 任意两边之和大于第三边
if side1 + side2 > side3 and side1 + side3 > side2 and side2 + side3 > side1:
周长 = side1 + side2 + side3
半周长 = 周长 / 2
面积 = (半周长 * (半周长 - side1) * (半周长 - side2) * (半周长 - side3)) ** 0.5
else:
print('不能构成三角形')
print('周长: ', 周长)
print('面积: ', 面积)
运行结果:
欢迎大家在下方评论交流~