Python条件判断用来根据真假走不同代码分支。Python 语言里用 if 写主分支,用 elif 追加其他条件,用 else 承接前面都不成立时的情况。空列表、0、None 等也会被当成假。
数字大于 0 就打印正数,否则走另一条分支,就是最常见的一种写法:
判断数字正负
num = 3
if num > 0:
print(num, "是正数")
print("这句话始终会输出")输出:
3 是正数
这句话始终会输出if 行末的冒号 : 不能省,缩进进去的语句才属于该分支,上面第二个 print 没有缩进,所以不论条件真假都会执行。
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 后面不限于比较表达式,任意对象都能当条件。会被当成 False 的包括:0、0.0、空字符串 ''、空列表 []、空字典 {}、None、False。其余情况一般视为 True。
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,这是二进制浮点精度问题。更稳健的处理方式是看两者差值是否小于一个很小的数。