Python if 条件语句详解
if 语句是 Python 编程语言中用于控制程序流程的核心结构。它允许代码根据特定条件的真假来决定执行哪一部分逻辑。掌握 if 语句的用法对于编写灵活、高效的 Python 程序至关重要。
1. 基本语法与规则
if 语句的一般语法形式如下:
if 表达式 1:
语句块 1
elif 表达式 2:
语句块 2
else:
语句块 3
关键规则:
- 关键字:
elif是else if的缩写,else表示默认分支。 - 冒号:每个条件表达式后面必须使用冒号(:)。
- 缩进:使用缩进来划分语句块。相同缩进数的语句在一起组成语句块。通常推荐使用 4 个空格作为一级缩进。
- 执行顺序:从上到下逐个执行表达式,只有条件表达式的值为 True 时,才执行该分支的语句块。
- 分支互斥:无论有多少个分支,最多只执行一个分支,或者一个也不执行,不会同时执行多个分支。当有多个分支的表达式同时满足,则只执行第一个与之匹配的语句块。
- Else 处理:如果所有的表达式的值都为 False,有 else 分支则执行 else 分支,没有 else 分支则不执行。
2. 布尔值判定标准(Truthy & Falsy)
无论表达式的值是什么类型,if 语句都能判断它是 True 或 False。理解哪些值被视为 False(Falsy)非常重要:
- 布尔类型(bool):只有两个值,分别是
True和False。 - 数字:
0、0.0为 False,其它数值为 True。 - 空容器:空字符串、空列表、空元组、空字典、空集合均为 False。
- None:空值
None为 False。 - 非空内容:上述类型的非空实例均为 True。
示例代码:
print(bool("") # False
print(bool([])) # False
print(bool({})) # False
print(bool(None)) # False
print(bool(0)) # False
print(bool("Hello"))# True
print(bool([1])) # True
3. 分支结构详解
3.1 单分支 if 语句
由关键字 if、条件表达式、语句块三部分组成。仅当条件满足时执行。
x = 90
if x >= 90:
print("成绩优秀")
3.2 if...else 语句
提供'否则'的逻辑路径。如果表达式为 True 执行 if 分支,否则执行 else 分支。
x = 80
if x >= 90:
print("A")
else:
print("D")
3.3 if...elif...else 语句
支持多个中间分支。从上往下依次判断,只执行第一个为 True 的分支;若全为 False 且存在 else,则执行 else。
x = 50
if x >= 90:
print("A")
elif x >= 80:
print("B")
elif x >= 60:
print("C")
else:
print("D")
3.4 if 语句嵌套
if 语句可以嵌套使用,即在 if、elif、else 分支的语句块中还可以使用 if 语句。适用于复杂的多层逻辑判断。
x = 50
if x >= 60:
if x >= 90:
print("A")
elif x >= 80:
print("B")
else:
print("C")
else:
print("D")
注意:过度嵌套会降低代码可读性,建议尽量扁平化逻辑或使用提前返回(Guard Clauses)。
4. 条件表达式(三元运算符)
条件表达式也称为三元运算符,用于简化简单的 if-else 赋值逻辑。
语法:
表达式 2 if 表达式 1 else 表达式 3
示例:
x = 60
y = 80
a = x + 10 if x > y else y - 100
print(a) # 输出 70
等价的传统写法:
if x > y:
a = x + 10
else:
a = y - 100
5. 多重条件判断
结合 and、or、not 运算符可实现复杂的逻辑组合。
- and:所有条件必须同时为 True。
- or:只要有一个条件为 True。
- not:取反操作。
示例:
x = 140
y = '物理'
if 90 <= x <= 100 and y == '数学':
print("数学:A")
elif 135 <= x <= 150 and y == '物理':
print("物理:A")
else:
print("非统计科目或成绩不是 A~")
6. pass 语句
pass 语句表示空语句,不做任何事情,一般起到占位作用。在定义函数、类或条件分支时,如果暂时不需要实现具体逻辑,可以使用 pass 避免语法错误。
x = 60
y = 80
if x > y:
pass
else:
a = y
7. 常见错误与最佳实践
7.1 常见错误
- 缩进不一致:Python 对缩进敏感,混用 Tab 和空格会导致
IndentationError。 - 漏写冒号:
if行尾忘记加:会引发SyntaxError。 - 误用赋值符:在条件中误用
=代替==,虽然语法合法但逻辑错误(除非使用 walrus operator:=)。
7.2 最佳实践
- 保持逻辑清晰:避免过深的嵌套层级,超过 3 层建议重构。
- 使用 Guard Clauses:优先处理异常或简单情况,减少
else嵌套。 - 注释说明:复杂条件判断应添加注释解释业务含义。
- 测试覆盖:确保覆盖所有分支路径,特别是边界值。
通过合理使用 if 语句及其变体,开发者可以构建出健壮且易维护的程序逻辑。


