编程的本质,是让计算机根据不同的情况做出不同的反应。Python 里的 if 语句,就是用来做“条件判断”的:当某个条件成立时,执行一段代码;不成立时,则跳过或执行另一段代码。掌握了 if,你就拿到了让程序“自己思考”的钥匙。
一、最基础的 if 语句
if 语句的写法只有三部分:关键字 if、一个条件、一个冒号,然后换行缩进写代码块。
age = 20
if age >= 18:
print("你已经成年了")
这里有两个最容易踩坑的细节:
1. 冒号不能少。条件后面一定要写英文冒号“:”,漏掉会直接报语法错误。2. 缩进要对。冒号下面那行必须缩进(通常是 4 个空格)。Python 不像其他语言用大括号划分代码块,而是完全靠缩进来区分“这段代码属于哪个 if”。缩进不一致,程序要么报错,要么执行出意料之外的结果。
二、if…else:二选一
条件不成立时,往往想执行另一段代码,这时用 else 和 if 搭配:
score = 58
if score >= 60:
print("及格")
else:
print("不及格")
if 和 else 是二选一的关系:条件成立走 if 分支,不成立走 else 分支,二者永远只会执行其中一个。
三、if…elif…else:多分支判断
现实情况往往不止两种。比如成绩分成四档,这时用 elif(else if 的缩写):
score = 85
if score >= 90:
print("优秀")
elif score >= 80:
print("良好")
elif score >= 60:
print("及格")
else:
print("不及格")
程序会从上到下依次判断,命中第一个成立的条件就执行并结束整个 if 语句,后面的条件不再判断。所以条件顺序很重要,范围大的判断要往后放。
四、一行写法:三元表达式
对于简单的二选一赋值,Python 提供了优雅的一行写法:
result = "成年" if age >= 18 else "未成年"
它等价于完整的 if…else,适合简单赋值场景;逻辑复杂时还是写多行更清晰。
五、条件里的“真假”规则
if 后面的条件不一定是比较表达式,任何值都能放进去。Python 会把下面这些值当成“假”(False):数字 0、空字符串 “”、空列表 []、空字典 {}、空元组 ()、空集合 set(),以及 None。除此之外的值都视为“真”(True)。
name = input("请输入名字:")
if name:
print("你好," + name)
else:
print("名字不能为空")
利用这个特性,判断“列表是否为空”“用户是否输入了内容”会非常简洁。
六、逻辑运算符:组合多个条件
想同时满足多个条件用 and,满足其一用 or,取反用 not:
age = 25
has_ticket = True
if age >= 18 and has_ticket:
print("可以入场")
七、最常见的三个坑
1. 把比较运算符 == 写成了赋值号 =:if age = 18 会直接报错,正确写法是 if age == 18。
2. 漏写冒号。
3. 缩进混乱:同一个 if 下面不同行缩进不一致。
总结
if 语句的骨架就一句话:条件成立就做什么,否则做什么。先吃透 if / elif / else 三种结构和缩进规则,再理解真假判断与 and、or、not,你就能写出让程序“会判断”的代码了。