信息科技· 第3章 算法与 Python 编程
3.5知识点 · 课时

选择结构:让程序会判断

掌握 if / if-else / if-elif-else 选择结构,让程序能做判断。

让程序会判断:选择结构

上一关的程序能输入输出,但有个问题:不管学生答什么,显示的结果都一样。我们需要让程序根据情况做不同的事——这就是选择结构

if:满足条件才执行

score = 85
if score >= 60:
    print("及格了!")
  • if 后面跟一个条件(score >= 60)
  • 条件为 True 时,执行缩进的代码
  • 冒号 : 不能少,缩进不能少

Python 用缩进(通常是 4 个空格)表示代码块,不像其他语言用 {}。缩进错了程序会报错。

if-else:二选一

score = 50
if score >= 60:
    print("及格!")
else:
    print("不及格!")

条件为 True 走 if,为 False 走 else——必走其一

if-elif-else:多选一

批改选择题有 4 个选项?用 elif(else if 的缩写)处理多种情况:

answer = input("你的选择:")

if answer == "A":
    print("选了 A")
elif answer == "B":
    print("选了 B")
elif answer == "C":
    print("选了 C")
elif answer == "D":
    print("选了 D")
else:
    print("无效选项")

从上到下依次判断,只执行第一个匹配的分支,后面的不再判断。

比较运算符

运算符含义例子
==等于answer == "A"
!=不等于answer != "A"
> <大于 / 小于score > 60
>= <=大于等于 / 小于等于score >= 60

⚠️ ==判断相等,=赋值。这是初学者最容易混淆的!

逻辑运算符

多个条件组合:

运算符含义例子
and并且(都满足)score >= 60 and score < 80
or或者(满足其一)answer == "A" or answer == "B"
not取反not (score >= 60)

📱 项目推进·第 5 关

给「自动批改助手」加上判断——对就加分,错就不加分:

# 自动批改助手 v0.2:判断版
standard_answer = "A"
student_answer = input("请输入你的答案(A/B/C/D):")

if student_answer == standard_answer:
    score = 2
    print("✅ 回答正确!得分:", score)
else:
    score = 0
    print("❌ 回答错误。正确答案是:", standard_answer)

print("当前总分:", score)

现在程序会判断对错了!但它只能批改一道题。下一关我们用循环,让它批改多道题。

🤔 思考

  • if x = 5:if x == 5: 有什么区别?哪个会报错?
  • 写一个判断成绩等级的程序:90 分以上 A,80-89 B,60-79 C,60 以下 D
  • 为什么要用 elif 而不是多个独立的 if?

📝 知识小结

  • 选择结构:根据条件决定执行哪段代码
  • if / if-else / if-elif-else:单选 / 二选一 / 多选一
  • 冒号和缩进:Python 代码块的标志
  • 比较运算符:== != > < >= <=
  • 逻辑运算符:and / or / not

随堂练习

检验一下你对本节内容的理解

下面代码运行后,score 的值是多少?

answer = "B"
standard = "A"

if answer == standard:
    score = 2
else:
    score = 0

print(score)