学习目标
- 按条件执行代码。
- 理解 elif 的先后顺序。
- 检查等于阈值时走哪个分支。
概念解释
条件判断根据布尔结果选择执行路径。if 后写条件与冒号;属于它的语句缩进,建议统一四个空格。条件为真时执行该块,否则继续检查 elif;没有条件满足才进入 else。elif 可以有多段,else 最多一段且不再写条件。
同一串 if/elif/else 中,只有第一个满足的分支会执行。先检查 score >= 60,再写 elif score >= 90,90 分也会被第一段接住,后面的优秀分支无法到达。所以互斥等级常按更严格的条件先写。
缩进是语法,不是装饰。块结束后回到外层缩进。比较条件中的边界必须根据需求决定:>= 60 包含 60,> 60 不包含 60。先列出边界测试值,再写代码,能减少看起来合理却漏掉边界的情况。
完整代码示例
将下面代码完整复制到运行器,先运行原例,再一次只修改一个地方。
score = 72
if score >= 90:
print("优秀")
elif score >= 60:
print("达到基础目标")
else:
print("继续练习")
print("评价完成")
逐行代码讲解
- 第 1 行指定本次要评价的分数。
- 第 2 行检查是否至少 90 分。冒号开启代码块。
- 第 3 行只在第 2 行为真时打印;本次不会执行。
- 第 4 行在前一个条件为假时检查至少 60 分。
- 第 5 行本次会执行,因为 72 满足这一条件。
- 第 6 行表示所有前面条件都不满足时的后备分支。
- 第 7 行本次不执行。
- 第 8 行已回到外层缩进,无论选择哪一分支都会执行。
实际运行结果
以下输出已在 Python 3 中执行核对。代码和输出分别放在不同区域;不要把输出当作代码。
达到基础目标
评价完成
常见错误
- 漏冒号会产生 SyntaxError;混用空格和制表符可能产生缩进错误。
- 把多个互斥等级写成多个独立 if,可能重复输出;应根据需求选择链式分支。
- 把条件中的 == 写成 =,通常会报语法错误。
实践练习
把分数分别改为 90、60、59,预测并核对输出。然后编写学习时长建议:至少 60 分钟为“完整练习”,至少 20 为“短时练习”,否则为“先复习一个概念”。
先独立作答再查看参考。能运行还不够,请解释结果为什么正确。
参考答案
minutes = 20
if minutes >= 60:
advice = "完整练习"
elif minutes >= 20:
advice = "短时练习"
else:
advice = "先复习一个概念"
print(advice)
assert advice == "短时练习"
边界 20 应属于短时练习。原例的 90、60、59 分别对应优秀、达到基础目标、继续练习,随后都输出评价完成。
换个角度理解
像按分数选择一个通道:先看是否达到 90,再看是否达到 60,否则去补练区。进入一个通道后,不再逐一走后面的通道。两个独立 if 则像两个独立检查点。
把不同情况的处理规则写清楚。顺序会改变结果:分数区间通常应从严格条件开始,否则宽条件会提前接住输入。
动手观察:一步一步执行
这是当前知识点的独立教学示例,不是本课所有 Python 语法的模拟。修改参数、预测结果,再按下一步验证。完整语言练习使用可信代码运行器。
把每一步,看明白
变量与作用域
输出
每步显示该语句求值后的快照;第 0 步尚未执行。条件行显示判断结果,函数调用单独显示进入与返回。自动播放可随时暂停,默认不会启动。
自己判断,才知道哪里没懂
先选答案再核对。答错会提供原因和补学方向,不影响课程完成进度。
尚未提交练习。知识掌握度和学习进度分别记录。
这一节,你理解到哪里了?
这是你的自我反馈,与练习估计、课程进度分别记录。