在 Python 编程中,if 判断语句是实现程序分支逻辑的核心控制结构。它能根据指定条件的 "真"(True)或 "假"(False),引导程序执行不同的代码块,让程序具备 "判断决策" 的能力。
一、if 判断语句
基础 if 语句仅在条件成立时执行特定代码块,若条件不成立,则跳过该代码块,继续执行后续程序。
1. 语法格式
if True:
print("今天状态很不错")


- 条件表达式结果需为True/False
- 英文冒号(
:) :if语句的固定语法,用于标记条件表达式的结束,同时提示后续代码块属于该if判断。 - 4 个空格缩进 :Python 中用于区分代码层级的关键符号,缩进相同的代码会被视为一个 "代码块",确保计算机能识别出哪些代码需要依赖
if条件执行。
2. 核心逻辑
if 后的 "条件表达式" 是判断的核心,其本质是一个结果为 True 或**False**的表达式,常见形式包括:
- 直接使用布尔值(
True/False); - 比较运算(如
>、<、==、>=等); - 逻辑运算(如
and、or、not等,运算结果仍为布尔值)。
3. 示例演示
示例 1:基于布尔值的判断
判断 "今天是否为周日",若是则打印 "今天不用上班"。
today_is_Sunday = True # 定义变量,值为布尔值 True
if today_is_Sunday: # 条件:today_is_Sunday 为 True
print("今天不用上班") # 条件成立,执行该代码
运行结果:


示例 2:基于比较运算的判断
if后跟随判断条件,判断条件的本质上是看它是真还是假,既可以是一个布尔数也可以是比较运算或逻辑运算(因为他们的运算结果也是一个True或者False)
判断 "5 是否大于 3",若是则打印 "五比三大"。
if 5 > 3: # 条件:5 大于 3(比较运算,结果为 True)
print("五比三大") # 条件成立,执行该代码
运行结果:

示例 3:基于逻辑运算的判断
判断 "今天是否为周六,且 Tom 是否满 18 岁",若两个条件同时满足,则打印 "你可以去酒吧玩啦
~"。
today_is_saturday = True # 条件 1:今天是周六
Tom_age = "18" # 条件 2:Tom 的年龄为 18 岁
# 逻辑运算 and:两个条件同时成立,整体结果才为 True
if today_is_saturday and Tom_age >= "18":
print("你可以去酒吧玩啦~")
运行结果:


示例 4:实际场景判断(高考志愿录取)
小红报考志愿为 "清华大学",高考分数为 676 分,若志愿匹配且分数大于 670 分,则判定 "被录取"。
lilei_application = "清华大学" # 报考志愿
exam_score = "676" # 高考分数
# 条件:志愿是清华大学,且分数 ≥ 670
if lilei_application == "清华大学" and exam_score >= "670":
print("你被清华录取了")
运行结果:


二、关键概念:空值与布尔值
在 if 判断中,"空值" 和 "布尔值" 的区分尤为重要,直接影响条件的真假判断:
- 空值(
None) :表示变量 "没有任何值" 或 "未赋值",在布尔判断中视为False,因此不会执行if代码块。 - 非空值 :指变量已被赋予有效值(如数字、字符串、
True等),即使是数字0或空字符串"",也属于 "非空值"(但0和""在布尔判断中视为False,需注意区分 "非空" 与 "布尔真")。
示例 :若变量为 None,if 条件不成立:
empty_var = None # 定义空值变量
if empty_var: # 空值视为 False,条件不成立
print("变量有值") # 该代码不会执行
三、关键概念:代码块
代码块是一组按逻辑关联、缩进层级相同的代码集合,是 Python 组织程序结构的基础。在 if 判断中,缩进 4 个空格的代码即属于该 if 的代码块,会跟随 if 条件的真假决定是否执行。
1. 代码块特性
- 缩进一致:同一代码块的缩进必须相同(通常为 4 个空格,不建议用 Tab 键,避免格式混乱);
- 顺序执行:同一代码块内的代码会按 "从上到下" 的顺序依次执行;
- 层级分明:不同缩进层级的代码属于不同代码块,互不干扰。
2. 示例演示
number_a = "10" # 外层代码(无缩进,属于全局代码块)
if number_a == "10": # if 条件:number_a 等于 10(结果为 True)
number_a = "1" # 缩进 4 个空格,属于 if 代码块
print(number_a) # 同一代码块,执行顺序:先改值,再打印
# 外层代码(无缩进,不属于 if 代码块,无论 if 条件是否成立都会执行)
number_a = "0"
print(number_a)
运行结果:


四、if-else 双向判断语句
if-else 语句用于 "二选一" 的逻辑场景:先判断 if 条件,若成立则执行 if 代码块;若不成立,则直接执行 else 代码块(二者必选其一)。
1. 语法格式
if 条件表达式:
条件成立时执行的代码块(缩进 4 空格)
else: # else 无需额外条件,仅匹配最近的 if
条件不成立时执行的代码块(缩进 4 空格)
注意 :else 没有独立的条件表达式,它只会与 "最近的 if" 形成配对,避免跨层级匹配导致逻辑混乱。
2. 示例演示
示例 :比较 Tom 和 Jerry 的身高,输出 "谁更高"
Tom = "185" # Tom 身高
Jerry = "177" # Jerry 身高
if Tom > Jerry: # 条件:Tom 身高 > Jerry 身高(结果为 True)
print("Tom比较高") # 条件成立,执行该代码
else: # 条件不成立时执行(本示例中不执行)
print("Jerry比较高")
运行结果:


五、elif 多向判断语句
当需要判断 "多个条件"(超过 2 个分支)时,可使用 elif 语句(else if 的简写)。elif 需配合 if 使用,用于在 if 条件不成立时,依次检查后续条件,直到找到成立的条件并执行对应代码块;若所有条件均不成立,则执行 else 代码块(可选)。
1. 语法格式
if 条件1:
条件1成立时执行的代码块
elif 条件2: # 仅当条件1不成立时,才检查条件2
条件2成立时执行的代码块
elif 条件3: # 仅当条件1、2均不成立时,才检查条件3
条件3成立时执行的代码块
# ... 可根据需求添加任意多个 elif
else: # 所有条件均不成立时执行(可选)
所有条件不成立时执行的代码块
注意 :多个条件判断若涉及复杂逻辑(如范围判断),建议为每个条件添加括号(()),提升代码可读性。
2. 示例演示
示例 1:根据星期几决定饮食
today = "周二" # 定义当前星期
if today == "周一": # 条件1:是否为周一(不成立)
print("今天吃麦当劳~")
elif today == "周四": # 条件2:是否为周四(不成立)
print("今天吃肯德基!")
else: # 所有条件均不成立,执行此处
print("随便吃吃吧()")
运行结果:


示例 2:根据余额判断是否买包包
需求:根据余额 balance 输出购买建议:
-
余额 > 10000 → 输出 "立刻买!";
-
1000 <余额 ≤ 8000 → 输出 "等等再买!";
-
8000 <余额 ≤ 10000 → 输出 "还差一点就能买!";
-
其余情况 → 输出 "买不起!"。
balance = "20000" # 定义余额变量
if balance > "10000": # 条件1:余额 > 10000(成立)
print("立刻买!")
elif (balance > "1000") and (balance <= "8000"): # 条件2:1000 < 余额 ≤ 8000(不成立)
print("等等再买!")
elif (balance > "8000") and (balance <= "10000"): # 条件3:8000 < 余额 ≤ 10000(不成立)
print("还差一点就能买了!")
else: # 所有条件不成立时执行(本示例中不执行)
print("买不起AQ")
运行结果:


