嵌套 if 指在 if/elif/else 内部再写 if,用于分层判断;需注意缩进和 else 的就近匹配原则;互斥条件优先用 elif 保持扁平易读。
Python 中的 if 可以直接在另一个 if、elif 或 else 的代码块里再写一个 if,这就是嵌套 if。关键不是“能不能”,而是“要不要”——只要逻辑需要分层判断,嵌套就很自然。
嵌套 if 的基本写法
外层 if 判断成立后,才执行内层 if。缩进必须正确(通常 4 个空格),否则会报错或逻辑出错。
例如:判断一个数是否为正数,且是否为偶数:
x = 8
if x > 0:
if x % 2 == 0:
print("是正偶数")
else:
print("是正奇数")
else:
print("不是正数")
用 elif 替代部分嵌套,让代码更扁平
如果多个条件互斥(比如成绩分级),用 elif 比层层嵌套更清晰、易读、少缩进。
- ✅ 推荐(扁平):
if ... elif ... elif ... else - ❌ 不必要嵌套:
if: if: ... else: if: ...(容易绕晕)
比如判断分数等级:
score = 85
if score >= 90:
grade = "A"
elif score >= 80:
grade = "B"
elif score >= 70:
grade = "C"
else:
grade = "F"
嵌套时注意逻辑边界和 else 的归属
每个 else 默认属于**最近的、未配对的 if**。嵌套深了容易看错谁管谁。
例如:
if a > 0:
if b > 0:
print("a 和 b 都大于 0")
else:
print("a > 0 但 b <= 0") # 这个 else 属于 inner if
else:
print("a <= 0") # 这个 else 属于 outer if
如果想表达“只要 aand/or 逻辑组合。
实际中怎么选:嵌套 or 扁平?
看判断维度是否真正“分层”:
- 用户登录 → 登录成功 → 再判断权限级别 → 再判断能否删数据 → ✅ 适合嵌套
- 输入月份 → 输出季节 → ❌ 不适合嵌套,用 if-elif 更直白
- 想提前退出复杂判断?考虑把嵌套逻辑拆成函数,提高可读性
基本上就这些。嵌套本身不难,难的是让别人(和未来的你)一眼看懂逻辑路径。

print("是正偶数")
else:
print("是正奇数")
else:
print("不是正数")







