4. if-elif-else 语句
当需要处理多个互斥条件时,使用 if-elif-else。程序从上到下依次检查每个条件,第一个匹配的条件执行后直接跳出,不再检查后续条件。
python
# 语法格式
if 条件1:
执行语句块1
elif 条件2:
执行语句块2
elif 条件3:
执行语句块3
else:
执行语句块4 # 以上条件都不满足时执行
⚠️ elif 的关键特性
elif 是 "else if" 的缩写。一旦某个条件匹配成功,后面的 elif 和 else 都不再检查。
else 不是必须的,但通常作为"兜底"放在最后。
BMI v1.2 —— 多级判断(细化胖瘦等级)
python
# BMI 计算器 Version 1.2
height = float(input('身高(cm):'))
weight = float(input('体重(kg):'))
bmi = weight / (height / 100) ** 2
print(f'{bmi = :.1f}')
if bmi < 18.5:
print('你的体重过轻!')
elif bmi < 24:
print('你的身材很棒!')
elif bmi < 27:
print('你的体重过重!')
elif bmi < 30:
print('你已轻度肥胖!')
elif bmi < 35:
print('你已中度肥胖!')
else:
print('你已重度肥胖!')
📝 样例输入:
输入
175
70
▶ 运行结果:
输出
身高(cm):175
体重(kg):70
bmi = 22.9
你的身材很棒!
💡 为什么 elif 后面只写 bmi < 24?
因为 elif 是互斥的——程序执行到 elif bmi < 24 时,意味着前面的 bmi < 18.5 已经不成立(即 bmi ≥ 18.5),所以只需判断 bmi < 24 即可确定 18.5 ≤ bmi < 24。
这比写 elif 18.5 <= bmi < 24 更简洁,也更不容易出错。
百分制成绩转等级
输入百分制成绩,输出对应等级:90分以上 A,80-89 B,70-79 C,60-69 D,60分以下 E。
python
score = int(input("请输入百分制成绩:"))
if score >= 90:
print('A')
elif score >= 80:
print('B')
elif score >= 70:
print('C')
elif score >= 60:
print('D')
else:
print('E')
📝 样例输入:
输入
85
▶ 运行结果:
输出
请输入百分制成绩:85
B