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)