• 23. python 条件判断嵌套


    23. python 条件判断嵌套

    1. 什么是嵌套

    嵌套就是判断条件里还有判断条件。

    嵌套语句是就是一个判断语句里还有另一个判断语句里,类似我们的套娃玩具。

    之前我们学的判断条件都是独立的,判断语句都是从上到下执行的,不存在条件之中还有条件的情况。

    但生活总是问题连在问题,条件接着条件。

    【举例说明:征兵标准】

    1. 身高标准:男性160cm以上,女性158cm以上。

    2. 男性体重:男性不超过标准体重的30%,不低于标准体重的15%。

    3. 女性体重:不超过标准体重的20%,不低于标准体重的15%。
      标准体重=(身高-110)kg

    4. 视力标准:右眼裸眼视力不低于4.6,左眼裸眼视力不低于4.5。手术后双眼视力均达到4.8以上。

    5. 年龄条件:年满18至20岁,高中以上文化程度青年和企事业单位职工放宽到21岁,大专学历毕业生放宽到23岁,本科及以上学历毕业生可放宽到24岁。

    下面,我们写一个程序来判断某某某是否符合入伍条件。

    2. 体验代码

    在这里插入图片描述

    男性和女性的征兵标准是不一致。我们要判断某某的各项指标是否符合征兵标准,我们首先要判断他的性别,然后再对应性别的各项标准进行判断。

    我们先写一个程序,判断身高是否符合标准。

    我们要用条件判断语句来实现这个功能,我们第一步需要判断我们在终端获取的性别是什么?

    【条件梳理】

    最外层判断的是性别。

    里层判断的是身高。

    # 用input函数从终端获取性别,赋值给变量sex
    sex = input("请输入你的性别(输入一个字男or女:")
    
    # 如果是一名男性
    if sex == "男" :
        # 用input函数从终端获取男性的身高
        # 注意这里的height相对于If有4个空格的缩进
        height = int(input("请输入你的身高(整数,单位厘米):"))
        # 男性的身高需要大于等于160
        if height >= 160 :
            print("符合条件,进入下一关!")
        else:
            print("淘汰!")
    
    # 如果是输入的是女
    elif sex == "女" :
        height = int(input("请输入你的身高(整数,单位厘米):"))
        if height >= 158 :
            print("符合条件,进入下一关!")
        else:
            print("淘汰!")
    
    print("程序结束!")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    【终端输出】

    淘汰!
    程序结束!
    
    • 1
    • 2

    上述代码中,我在终端输入的是155

    像上述这样一个判断语句里还有一个判断语句的形式,就是条件判断嵌套。

    判断性别的语句里还有一个判断身高的语句,即条件判断嵌套。

    3. 条件判断嵌套的执行流程

    在这里插入图片描述

    【外层的条件判断语句】

    最外层判断的是性别:

    sex = input("请输入你的性别(输入一个字男or女:")
    
    if sex == "男" :
        代码块1    
    
    elif sex == "女" :
        代码块2  
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    里层判断的是身高:

    下面是一个单独判断身高的条件判断语句,即代码块2。

    当它做为外层判断的嵌套判断语句时,整个代码块向右缩进4个空格。

    height = int(input("请输入你的身高(整数,单位厘米):"))
    if height >= 158 :
        print("符合条件,进入下一关!")
    else:
        print("淘汰!")
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

    【备注】上述图片来自夜曲编程。

    这里的代码块1和和代码块2相对外层的条件判断语句有同样的四个空格的缩进。

    程序执行时先判断性别,性别是男,执行代码块1;性别是女执行代码块2。

    进入代码块后,里层的判断就是就是我们之前学的简单的if…else…语句。

    4. 条件判断语句的写法

    太复杂的条件判断,我们可以简单的画一个流程图。

    就像剥洋葱一样,一层一层往里剥即可。

    重点是把最外层的条件先写好。

    在这里插入图片描述

    【温馨提示】条件判断语句的难点在于缩进问题。

    里层的代码块相对于外层的代码块永远有四个空格缩进。
    注意是整体缩进。

    【添加体重的判断】

    为了方便大家理解代码,我把体重的标准改为:男性60-90公斤;女性45-60公斤。

    sex = input("请输入你的性别(输入一个字男or女:")
    
    # 第1个判断语句:判断性别
    if sex == "男" :
        height = int(input("请输入你的身高(整数,单位厘米):"))
        # 第2个判断语句:判断身高
        if height >= 160 :
            print("身高符合条件,进入下一关!")
            weight = int(input("请输入你的体重(整数,单位公斤):"))
            # 第3个判断语句:判断性别
            if 60 <=weight <=90:
                print("体重符合条件,进入下一关!")
            else:
                print("体重不符合,淘汰!")
        else:
            print("身高不符合,淘汰!")
    
    elif sex == "女" :
        height = int(input("请输入你的身高(整数,单位厘米):"))
        if height >= 158 :
            print("身高符合条件,进入下一关!")
            weight = int(input("请输入你的体重(整数,单位公斤):"))
            if 45 <=weight <=60:
                print("体重符合条件,进入下一关!")
            else:
                print("体重不符合,淘汰!")
        else:
            print("身高不符合,淘汰!")
    
    print("程序结束!")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30

    【终端输出】

    身高符合条件,进入下一关!
    体重符合条件,进入下一关!
    程序结束!
    
    • 1
    • 2
    • 3

    【添加视力】

    为了方便大家理解代码,我此处的视力标准不考虑做手术的情况。
    因为左右眼视力标准不一样,需要写成2个判断语句。

    sex = input("请输入你的性别(输入一个字男or女:")
    
    # 第1个判断语句:判断性别
    if sex == "男" :
        height = int(input("请输入你的身高(整数,单位厘米):"))
        # 第2个判断语句:判断身高
        if height >= 160 :
            print("身高符合条件,进入下一关!")
            weight = int(input("请输入你的体重(整数,单位公斤):"))
            # 第3个判断语句:判断体重
            if 60 <=weight <=90:
                print("体重符合条件,进入下一关!")
                left_sight = float(input("请输入您的左眼视力(浮点数):"))
                # 第4个判断语句:判断左眼视力
                if left_sight >= 4.5 :
                    print("左眼视力符合,进入下一关!")
                    right_sight = float(input("请输入您的右眼视力(浮点数):"))
                    # 第5个判断语句:判断右眼视力
                    if left_sight >= 4.6 :
                        print("右眼视力符合,进入下一关!")                
                    else:
                        print("右眼视力不符合,淘汰!")
                else:
                    print("左眼视力不符合,淘汰!")
            else:
                print("体重不符合,淘汰!")
        else:
            print("身高不符合,淘汰!")
    
    elif sex == "女" :
        height = int(input("请输入你的身高(整数,单位厘米):"))
        if height >= 158 :
            print("身高符合条件,进入下一关!")
            weight = int(input("请输入你的体重(整数,单位公斤):"))
            if 45 <=weight <=60:
                print("体重符合条件,进入下一关!")
                left_sight = float(input("请输入您的左眼视力(浮点数):"))
                if left_sight >= 4.5 :
                    print("左眼视力符合,进入下一关!")
                    right_sight = float(input("请输入您的右眼视力(浮点数):"))
                    if left_sight >= 4.6 :
                        print("右眼视力符合,进入下一关!")                
                    else:
                        print("右眼视力不符合,淘汰!")
                else:
                    print("左眼视力不符合,淘汰!")
            else:
                print("体重不符合,淘汰!")
        else:
            print("身高不符合,淘汰!")
    
    print("程序结束!")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52

    【终端输出】

    身高符合条件,进入下一关!
    体重符合条件,进入下一关!
    左眼视力符合,进入下一关!
    右眼视力符合,进入下一关!
    程序结束!
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

    sight[saɪt]:视力。

    4. 课后练习

    【代码题1】

    某商场新开业,搞酬宾活动,注册该商场会员后可参加满减活动。

    1. 消费满1000元减100元;
    2. 消费满2000元减300元;
    3. 消费满5000元减800元。
      要求输出客户需要支付的金额。

    【参考答案】

    vip = input("请问是否以注册我商场会员(输入是或不是)?")
    if vip =="是" :
        cost = float(input("请输入您的消费金额:"))
        if 1000<=cost <2000 :
            print("您需要支付"+str(cost-100)+"元!")
        elif 2000<=cost <5000 :
            print("您需要支付"+str(cost-300)+"元!")
        elif cost >=5000 :
            print("您需要支付"+str(cost-800)+"元!")
        else:
            print("对不起,您消费不满1000元,不能参加满减活动!")
    else:
        print("对不起,您不是会员不能参加满减活动!")
    print("程序结束!")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    【终端输出】

    您需要支付4300.0元!
    程序结束!
    
    • 1
    • 2

    我在终端输入的是会员,消费是4600元。

    【代码题2】有兴趣的朋友可以继续吧征兵标准的条件判断写完。

    5. 总结

    嵌套语句的写法是先确定外层条件再确定内层条件。
    只有当外层条件成立时,才有可能进入到内层条件当中继续执行。

    【温馨提示】

    注意⚠️嵌套语句一定要严格遵守不同级别代码块的缩进规范。

    注意⚠️每嵌套一层都需要在原有缩进的基础上,再增加相应的缩进。

    如果有程序运行错误,优先考虑下面3个错误:

    注意⚠️检查是否忘记了冒号!

    注意⚠️检查标点符号是否为英文状态下输入!

    注意⚠️检查缩进是否准确!

    在这里插入图片描述

    【备注】以上图片来自夜曲编程。

    在这里插入图片描述

  • 相关阅读:
    APK 逆向工程 - 解析 apk 基本信息和方法调用图
    1373. 二叉搜索子树的最大键值和
    【LeetCode热题100】--347.前K个高频元素
    处理前端富文本渲染图片自适应(css方法)
    Ubuntu虚拟机的IP总频繁变化,导致Xshell断开连接
    SpringBoot用一个自定义注解来轻松搞定接口返回的数据脱敏
    视图,触发器与存储过程
    Godot 添加信号
    聚焦算力技术发展,中科驭数成功举办“新一代智算中心”技术生态沙龙
    开源监控工具monit安装部署
  • 原文地址:https://blog.csdn.net/weixin_63986098/article/details/126593748