深色模式
第 4 章:判断(分支)结构
本章能学到什么
if/if-else/if-elif-else三种判断写法- 比较运算符和逻辑运算符
- 缩进规则——Python 的缩进是语法,必须讲透
判断结构:让程序"看情况办事"
顺序结构只能一条路走到底。现实中的程序要会做选择:
如果距离小于 20cm,就亮红灯;否则亮绿灯。
这就是判断结构(也叫分支结构)。
最基本的 if
python
distance = 15
if distance < 20:
print("太近了,亮红灯!")只有当条件成立(结果为 True)时,缩进的代码才会执行。
if-else:二选一
python
distance = 35
if distance < 20:
print("亮红灯")
else:
print("亮绿灯")if-elif-else:多选一
python
distance = 25
if distance <= 20:
print("红灯:过近")
elif distance <= 30:
print("黄灯:注意")
elif distance <= 40:
print("绿灯:安全")
else:
print("超出感应范围")程序从上到下检查条件,遇到第一个成立的就执行,后面的全部跳过。
比较运算符与逻辑运算符
| 运算符 | 含义 | 例子 |
|---|---|---|
== | 等于(两个等号!) | a == 5 |
!= | 不等于 | a != 5 |
< <= > >= | 大小比较 | d <= 20 |
逻辑运算符连接多个条件:
python
# and:两个都成立才行
if distance > 20 and distance <= 30:
print("黄灯")
# or:有一个成立就行
if key == "a" or key == "A":
print("按了 A 键")
# not:取反
if not is_ready:
print("还没准备好")缩进是语法!(重点)
Python 用缩进(行首的空格)来表示"这几行代码属于哪个 if":
python
if distance < 20:
print("亮红灯") # 这行属于 if,条件成立才执行
print("蜂鸣器响") # 这行也属于 if
print("继续执行") # 这行不属于 if,永远执行规则很简单:
- 同一段代码块,缩进必须一样多(约定用 4 个空格)
if/else行末要有冒号:- 不要混用 Tab 和空格(Thonny 会自动统一成空格)
常见坑
=是赋值,==才是比较!if distance = 20:会直接报错- 冒号
:漏写是最常见的语法错误 elif的顺序很重要:范围小的要写前面,否则永远轮不到后面的条件
想一想
下面代码里,distance = 25 时会打印什么?把两个 if 的顺序换一下又会怎样?
python
if distance <= 40:
print("A")
elif distance <= 20:
print("B")💡 查看答案
distance = 25 时打印 A。因为从上到下判断,25 <= 40 先成立,执行完就跳出,后面的 elif 根本不看。
如果把两个条件换顺序:
python
if distance <= 20:
print("A")
elif distance <= 40:
print("B")distance = 25 时:25 <= 20 不成立,继续看 25 <= 40 成立,打印 B。
结论:条件有重叠时,顺序直接影响结果——范围小的条件应该放前面。
