if 嵌套详解
if嵌套指的是在一个if/elif/else代码块内部,再编写另一个(或多个)if/elif/else代码块,用于处理多层级、多条件的判断场景。
核心逻辑
外层条件满足时,才会进入内层判断;外层条件不满足,内层代码直接跳过。
基础语法结构
python
运行
# 外层if
if 外层条件1:
外层条件1满足时执行的代码
# 内层if(嵌套)
if 内层条件1:
内层条件1满足时执行的代码
elif 内层条件2:
内层条件2满足时执行的代码
else:
内层条件都不满足时执行的代码
elif 外层条件2:
外层条件2满足时执行的代码
else:
外层条件都不满足时执行的代码
实战案例
案例 1:成绩等级判定(双层条件)
需求:先判断是否及格(外层),及格后再细分等级(内层)
python
运行
score = 85
# 外层:判断是否及格
if score >= 60:
print("恭喜,成绩及格!")
# 内层:细分及格后的等级
if score >= 90:
print("等级:优秀")
elif score >= 80:
print("等级:良好")
elif score >= 70:
print("等级:中等")
else:
print("等级:及格")
else:
print("成绩不及格,需补考!")
输出结果:
plaintext
恭喜,成绩及格!
等级:良好
案例 2:用户权限判断(三层嵌套)
需求:先判断是否登录→再判断是否管理员→最后判断操作权限
python
运行
is_login = True # 是否登录
is_admin = True # 是否管理员
action = "delete" # 操作类型
# 第一层:判断是否登录
if is_login:
print("已登录,进入权限校验...")
# 第二层:判断是否管理员
if is_admin:
print("管理员身份验证通过!")
# 第三层:判断操作权限
if action == "delete":
print("允许执行删除操作")
elif action == "add":
print("允许执行添加操作")
else:
print("不支持该操作")
else:
print("非管理员,无高级操作权限")
else:
print("请先登录!")
输出结果:
plaintext
已登录,进入权限校验...
管理员身份验证通过!
允许执行删除操作
注意事项
- 缩进规范:Python 通过缩进区分代码块,嵌套的
if需比外层缩进 1 级(通常 4 个空格),缩进错误会导致语法报错。 - 条件顺序:内层条件仅在外层条件满足时执行,需合理设计条件顺序(比如先判断大范围,再判断小范围)。
- 避免过度嵌套:嵌套层数过多(如超过 3 层)会降低代码可读性,可拆分为函数或用逻辑运算符(
and/or)简化。
简化示例(用逻辑运算符替代简单嵌套)
python
运行
# 原嵌套写法
if score >= 60:
if score <= 80:
print("及格且不超过80分")
# 简化写法(等价)
if 60 <= score <= 80:
print("及格且不超过80分")