条件语句根据布尔表达式的真假选择执行路径。Python 使用 if 引入主分支,elif 补充后续条件,else 处理前述条件均不成立的情况。除比较结果外,空序列、数值零与 None 等也会在布尔上下文中被视作假。本节说明单层与多分支结构、嵌套写法、真假值规则及常见错误。
判断数字正负
num = 3
if num > 0:
print(num, "是正数")
print("这句话始终会输出")输出:
3 是正数
这句话始终会输出if 行末须写冒号 :,其下缩进的语句属于该分支。未缩进的语句不在分支内,无论条件真假都会执行。
if ... else
num = -5
if num >= 0:
print("0 或正数")
else:
print("负数")输出:
负数if ... elif ... else:多分支
条件多于两种时,使用 elif 依次检验。某一分支命中后,后续分支不再判断:
num = 3.4
if num > 0:
print("正数")
elif num == 0:
print("零")
else:
print("负数")同一 if 结构中 else 至多一个,elif 可重复任意次。
if / else 执行流程:条件为真走 if 分支,为假走 else 分支
嵌套 if
分支内部可再写 if,通过缩进层级表示嵌套关系:
num = float(input("输入数字: "))
if num >= 0:
if num == 0:
print("零")
else:
print("正数")
else:
print("负数")输出(输入 5):
正数嵌套层数过多会降低可读性。若条件并列,宜改用 elif,或在函数中满足条件后使用 return 提前结束。
什么值算假
if 后的条件不限于比较表达式,任意对象均可置于布尔上下文中。下列值被视为假:0、0.0、空字符串 ''、空列表 []、空字典 {}、None、False。其余情况一般视为真。
if []:
print("空列表是假的,不会进来")
else:
print("进了 else")
if "hi":
print("非空字符串为真")输出:
进了 else
非空字符串为真因此判空可写为 if not data:,表示 data 为空时进入该分支。
条件里组合逻辑
age = 20
if age >= 18 and age <= 65:
print("成年且未退休")
if age < 12 or age > 60:
print("优待人群")常见错误
1. 忘写冒号:if 行末必须有 :,否则产生语法错误。
2. 缩进不对齐:同一分支内的语句缩进层级须一致。
3. 用 = 做比较:判断相等应使用 ==。
4. 浮点直接比相等:0.1 + 0.2 == 0.3 的结果是 False,源于二进制浮点表示的精度限制。更稳妥的做法是判断两者差值的绝对值是否小于给定阈值。
小结
条件结构依赖行末冒号与一致缩进。多分支宜优先使用 elif 以降低嵌套深度。浮点数相等比较须考虑精度误差。
本节说明了条件分支、真假值及常见语法错误。下一节介绍循环(for 与 while)。