4. if-elif-else 语句

当需要处理多个互斥条件时,使用 if-elif-else。程序从上到下依次检查每个条件,第一个匹配的条件执行后直接跳出,不再检查后续条件。

python
# 语法格式
if 条件1:
    执行语句块1
elif 条件2:
    执行语句块2
elif 条件3:
    执行语句块3
else:
    执行语句块4  # 以上条件都不满足时执行
⚠️ elif 的关键特性

elif 是 "else if" 的缩写。一旦某个条件匹配成功,后面的 elifelse 都不再检查。

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