2026-09-23
Python 入门系列(四):条件判断——教会程序做选择
if 就像岔路口的路标。学习 if/else、elif 链、条件组合与嵌套、一行三元表达式,掌握 Python 缩进规则,完成 BMI 等级评定练习。
条件判断:教会程序做选择
预计学习时间:50 分钟 · 本系列第 4 / 10 课
一、程序走到岔路口了
前几课的程序都是"一条道走到黑":从上到下执行一遍就结束。但现实中充满选择——登录密码对不对?余额够不够?成绩及不及格?
**核心比喻:if 就像岔路口的路标。**程序走到路口,看一眼条件是否成立:成立就走 A 路,不成立就走 B 路。路口看完,两条路最终汇合,程序继续往下走。
┌─ True ✓ ──► 执行 if 里的代码 ─┐
if 条件成立?─┤ ├─► 两条路汇合,继续往下
└─ False ✗ ─► 执行 else 里的代码 ┘
二、最基本的两条路:if / else
score = int(input("请输入成绩:"))
if score >= 60:
print("及格啦,恭喜!")
else:
print("要补考了,加油复习。")
print("程序结束") # 这行不在 if 里,无论哪条路都会执行
请输入成绩:75
及格啦,恭喜!
程序结束
Python 的灵魂:缩进。if 下一行开头的 4 个空格表示"这几行属于 if"。同一个缩进层级的代码是一个"团队"。缩进错了或漏了冒号 : 是新手报错第一名!
三、多条路:elif 链
三个以上的选择,用 elif(读作"else if")串起来,程序从上往下依次检查,命中一条就停止:
score = int(input("请输入成绩:"))
if score >= 90:
print("优秀")
elif score >= 80:
print("良好")
elif score >= 60:
print("及格")
else:
print("不及格")
请输入成绩:85
良好
顺序很重要!如果把 if score >= 60 放在最前面,85 分会先命中它而输出"及格",永远轮不到"良好"。条件要从严到宽排列。
四、条件组合与嵌套
用上一课学的 and / or / not 把条件连起来:
age = 25
vip = True
if age >= 18 and vip:
print("欢迎光临 VIP 区")
# 嵌套:路口里面还有路口
if age >= 18:
if vip:
print("欢迎光临 VIP 区")
else:
print("普通通道")
and 写法和嵌套等价时,优先用 and——代码更扁、更好读。嵌套超过两层就该考虑合并条件了。
五、一些好用的写法
# 1. 直接对布尔值判断,不要多此一举
is_rain = True
if is_rain: # ✓ 推荐,而不是 if is_rain == True:
print("带伞")
# 2. 一行版(三元表达式):值 = A if 条件 else B
level = "成年" if age >= 18 else "未成年"
六、避坑指南
- ❌
if score = 90:—— 判断相等必须用== - ❌ 冒号漏写:
if score >= 60后面少了:,报SyntaxError - ❌ 缩进混用空格和 Tab —— 报
IndentationError。统一用 4 个空格(编辑器按 Tab 会自动转) - ❌ elif 顺序颠倒导致"高分低评"
七、动手练习
练习:智能体重建议器。输入身高(米)和体重(公斤),计算 BMI 并输出等级:<18.5 偏瘦,18.524 正常,2428 偏胖,≥28 肥胖。
height = float(input("身高(米):"))
weight = float(input("体重(公斤):"))
bmi = weight / (height * height)
if bmi < 18.5:
print("偏瘦,多吃点")
elif bmi < 24:
print("正常,保持!")
elif bmi < 28:
print("偏胖,注意锻炼")
else:
print("肥胖,该动起来了")
下一课预告:让电脑干它最擅长的事——重复。循环来了!