条件分支插画

前面的程序都是"一条道走到黑":从上往下挨着执行。但现实中的程序要看情况办事——及格了表扬,不及格鼓励;BMI 超标提醒运动。这就是条件分支,关键字:if。

一、if:最基本的"如果"

score = 85
if score >= 60:
    print("及格了!")

读作:"如果 score 大于等于 60,就打印'及格了!'"。注意两个格式要点:

  • if 行末尾有个冒号 :,表示"下面是要执行的分支";
  • 分支里的代码必须缩进(四个空格),Python 靠缩进认出哪些代码归这个 if 管。
💡 缩进是 Python 的灵魂!别的语言用大括号 {} 分组,Python 只认缩进。缩进不对,程序直接报错。

二、if-else:二选一

分支流程图

score = 45
if score >= 60:
    print("及格了!")
else:
    print("不及格,继续加油!")
# 输出:不及格,继续加油!

条件成立走 if,不成立走 else,有且只有一个分支会执行。

三、if-elif-else:多选一

超过两种情况?用 elif(else + if 的缩写)往下接龙:

score = 85
if score >= 90:
    print("优秀")
elif score >= 80:
    print("良好")
elif score >= 60:
    print("及格")
else:
    print("不及格")
💡 elif 是从上往下依次判断的,命中一个就停。所以 score >= 90 必须写在最前面——如果先写 >= 60,95 分也会被判成"及格"!顺序就是逻辑。

还记得第四课的 BMI 计算器吗?现在让它自动下结论:

bmi = 22.5
if bmi < 18.5:
    print("偏瘦,多吃点")
elif bmi < 24:
    print("体型正常,继续保持")
elif bmi < 28:
    print("偏胖,该运动了")
else:
    print("肥胖,建议咨询医生")

四、嵌套 if:分支里再分支

嵌套分支示意

if 里面可以再套 if,像俄罗斯套娃:

score = 95
if score >= 60:
    print("及格了")
    if score >= 90:          # 注意:又缩进了4格
        print("而且是优秀!")
else:
    print("不及格")
💡 嵌套别超过 2~3 层,层数一多连自己都看晕。能用 elif 拉平的,就别嵌套。

五、小抄:条件还能这么写

# 1. Python 支持连写比较(第五课彩蛋的正式登场)
print(60 <= score <= 100)   # True:分数在60到100之间

# 2. 三元表达式:一行搞定简单的二选一
result = "及格" if score >= 60 else "不及格"
print(result)

六、动手练一练

练习 1:输入年份,判断是不是闰年。(闰年规则:能被 4 整除但不能被 100 整除,或者能被 400 整除)

练习 2:输入身高(米)和体重(千克),计算 BMI 并自动输出体型评价(偏瘦 / 正常 / 偏胖 / 肥胖)。

点击查看参考答案
# 练习1
year = int(input("输入年份:"))
if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0:
    print(f"{year}是闰年")
else:
    print(f"{year}不是闰年")

# 练习2
height = float(input("身高(米):"))
weight = float(input("体重(千克):"))
bmi = weight / (height ** 2)
if bmi < 18.5:
    print(f"BMI={bmi:.1f},偏瘦")
elif bmi < 24:
    print(f"BMI={bmi:.1f},正常")
elif bmi < 28:
    print(f"BMI={bmi:.1f},偏胖")
else:
    print(f"BMI={bmi:.1f},肥胖")
🎉 这一课你学会了:if / elif / else、缩进规则、嵌套分支。下一课学习循环——让电脑把重复的活儿干了!
More

相关教程