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("肥胖,该动起来了")

下一课预告:让电脑干它最擅长的事——重复。循环来了!

← 返回教程列表
顶部