CC++ & Algorithm

从“死脑筋”到“会思考”:Python if 语句让你的程序学会做选择

2026年7月26日关联知识点:Python if 语句12 次阅读

你有没有遇到过这种烦恼?写了一段代码,却不管输入什么值都输出同样的结果——程序像个“死脑筋”的机器人,只知道一条路走到黑。比如你本想让它根据天气提醒你带伞,结果它永远输出“今天不用带伞”,哪怕外面暴雨倾盆。这是因为你的程序还没学会“判断”。在Python里,给程序装上“决策引擎”的方式就是 if 语句。它就像你公寓楼下的门禁系统:只有刷卡成功(条件为真),门才会打开;否则你只能吃闭门羹。

一、if 语句的基础:门禁系统

最简单的 if 像一扇单向门:

if 条件:
    执行代码

注意冒号和缩进,它们是Python的门缝——不写对,门就打不开。比如你想检查一个数字是否为正数:

num = 5
if num > 0:
    print("这个数字是正数")

这里 num > 0 是条件,结果为 True,所以门开了,打印了内容。如果把 num 改成 -3,条件为 False,门纹丝不动。

生活中的例子:你决定今天要不要带零花钱去学校。如果今天是周五(有体育课要买水),你就带5块钱;否则不带。代码就像:

is_friday = True
if is_friday == True:   # 判断相等用==
    print("今天带5元零花钱")

第一道题正好考察这个基本语法:以下哪个选项的 if 语句语法是正确的?
A. if x > 5: 正确,有冒号,缩进空着也行(但后面必须有代码)
B. if x > 5 少了冒号,报错
C. if x > 5: print("ok") 语法上允许(同一行),但不推荐,缩进不清晰
D. if x > 5:; print("ok") 画蛇添足

最标准且推荐的是A选项的格式,条件后面换行并缩进。

二、if-else:两条路,二选一

只有“如果”不够,你还得处理“否则”。就像门禁卡失效时,你可以走侧门。if-else 就是两条路径:

if 条件:
    条件成立做的事
else:
    条件不成立做的事

小例子:妈妈给你10元零花钱,如果你帮忙做家务,额外加5元,否则就只有10元。

help_housework = True
money = 10
if help_housework == True:
    money = money + 5
    print("获得额外5元!")
else:
    print("没有额外奖励。")
print("你一共有", money, "元")

注意 else 后面也有冒号,里面的代码同样需要缩进。

第二道题:已知 x = 10,执行下面代码后输出什么?

if x > 5:
    print('A')
else:
    print('B')

答案是 A。因为 x > 5True,执行 print('A')else 分支被跳过。这题看起来简单,却暴露了一个重要点:很多新手会误以为 else 总会被执行,但实际只有当前面条件不满足才走 else条件判断是“从顶向下,一个分支命中即结束”

三、if-elif-else:多路选择,像自助餐厅的取餐通道

生活中的选择往往不止两个。比如你走进一家自助餐厅,有A、B、C三个取餐区,你只能选一个。if-elif-else 就是这种“多选一”结构:

if 条件1:
    做1
elif 条件2:
    做2
elif 条件3:
    做3
else:
    否则做4

程序会从上到下依次检查,遇到第一个成立的条件就执行对应代码,然后跳过所有后面的判断。顺序很重要——范围大的条件要放在前面,否则小范围的条件永远没机会。

游戏里的例子:角色健康值(0~100)显示不同提示。

health = 45
if health >= 80:
    print("状态极佳")
elif health >= 50:
    print("状态不错")
elif health >= 20:
    print("你受伤了")
else:
    print("生命垂危")

这里 health >= 80 是最大的范围,放在最前面。如果颠倒顺序,把 health >= 20 放在前面,那么 health=45 就会先匹配 >=20,输出“你受伤了”,后面的判断全被跳过,逻辑就错了。

四、条件怎么写?比较运算与逻辑运算

条件就是求值后得到 TrueFalse 的表达式。基本比较有 >, <, >=, <=, ==, !=。组合条件需要用逻辑运算符 and(且)、or(或)、not(非)。

例子:判断一个年龄是否在6到12岁之间(包括两端)。

age = 10
if age >= 6 and age <= 12:
    print("你是个小学生")

其实Python也允许直接写 6 <= age <= 12,但初学者用 and 更清晰。

另一个例子:周末或者放假就可以玩游戏。

is_weekend = False
is_holiday = True
if is_weekend or is_holiday:
    print("可以玩游戏")
else:
    print("今天要学习")

not 常用于取反:如果不是坏天气就去公园。

weather = "下雨"
if not (weather == "下雨" or weather == "下雪"):
    print("去公园玩吧")
else:
    print("待在家里")

注意括号的使用,它改变了运算顺序,让 or 先结合,再整体取反。

五、新手最容易掉进的坑

  1. 忘记冒号ifelseelif 后面必须有英文冒号,否则语法错误。
  2. 缩进混乱:Python靠缩进判断代码块,同一层必须一致(4个空格或一个Tab,混用会报错)。
  3. 条件里写了单等号if num = 5 是赋值,不是判断,会报语法错误。判断相等要写 ==
  4. elif 写成 else if:Python只有 elif,没有 else if
  5. 条件顺序颠倒:就像前面游戏例子说的,大范围要放在前面,否则小范围条件永远没机会执行。

六、一个完整的示例:成绩等级判定

我们来做一个综合练习,根据考试成绩给出等级和评语。假设满分100分。

score = 88

if score >= 90:
    print("等级:优秀")
elif score >= 75:
    print("等级:良好")
elif score >= 60:
    print("等级:及格")
else:
    print("等级:不及格")

# 单独再判断满分或接近满分
if score == 100:
    print("太棒了,满分!")
elif score >= 95:
    print("差一点满分,继续努力")

运行结果会输出“等级:良好”(因为88在75~89之间)。注意这里最后两个 if-elif 是独立于前面的 if-elif-else 的,它们会单独执行。你可以修改 score 值为55,体验不同分支。

这个例子展示了 if-elif-else 和普通 if 可以混用,但逻辑要清晰:elif 是互斥的,而多个普通 if 是顺序独立的。

七、总结与进阶

if 语句让程序有了“判断力”,从死板执行变成了可以根据情况灵活应变。掌握了它,你就能写出像猜数字游戏、自动评分系统、模拟交通灯等有趣的程序。

但光是 if 还不够,下一步你要学会:

  • 循环(for/while):让判断重复执行,比如每天判断要不要带伞。
  • 布尔值(True/False):深入理解条件表达式的本质。
  • 嵌套if:在if里面再放if,处理更复杂的场景,比如先判断是否有权限,再判断操作类型。
  • input():让用户输入数据,让程序真正“活”起来。

当你把 if 和循环、函数配合使用时,你会发现编程不再是一堆线性代码,而是一个有决策能力的“小脑”。


关于作者

我是赵老师,持有 NOI 信息学奥赛教练证书,拥有 15 年以上的软件开发经验,从事信息学少儿编程教学已有 8 年时间。

这些年累计帮助 多名 学生通过编程特长升入自己心仪的目标学校。

如果你在编程学习上有任何疑问,欢迎联系我:18620372957(微信同号)

这篇文章对你有帮助吗?

成为第一个评价的人

想系统学习这个知识点?查看完整知识点 →