if嵌套的学习

74 阅读2分钟

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

已登录,进入权限校验...
管理员身份验证通过!
允许执行删除操作

注意事项

  1. 缩进规范:Python 通过缩进区分代码块,嵌套的if需比外层缩进 1 级(通常 4 个空格),缩进错误会导致语法报错。
  2. 条件顺序:内层条件仅在外层条件满足时执行,需合理设计条件顺序(比如先判断大范围,再判断小范围)。
  3. 避免过度嵌套:嵌套层数过多(如超过 3 层)会降低代码可读性,可拆分为函数或用逻辑运算符(and/or)简化。

简化示例(用逻辑运算符替代简单嵌套)

python

运行

# 原嵌套写法
if score >= 60:
    if score <= 80:
        print("及格且不超过80分")

# 简化写法(等价)
if 60 <= score <= 80:
    print("及格且不超过80分")