Skip to content

第 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,永远执行

规则很简单:

  1. 同一段代码块,缩进必须一样多(约定用 4 个空格)
  2. if / else 行末要有冒号 :
  3. 不要混用 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

结论:条件有重叠时,顺序直接影响结果——范围小的条件应该放前面。

不积跬步,无以至千里;万里之行,始于当下。