选择结构-if..elif语句和if语句的嵌套

点击打开在线编译器,边学边练

    1. if...elif...elif...else语句

对于一个问题处于多种选择的状态下,也可以理解为判断条件有多个值的时候,if...else就不能满足我们的需求,这时候我们就要借用elif来解决问题。

elif是等同于else+if,它的使用可以帮助我们简化代码,不至于是使用过多的if...else语句。它的形式为:

 if 表达式1:
     条件语句1
 elif 表达式2:
     条件语句2
 elif 表达式3:
     条件语句3
 else:
     条件语句4

我们看一下它的执行流程图。

601.png

这种形式就是当第一种情况不满足的时候会进行第二种情况的判断,如果仍然不满足会进行第三种情况的判断,如果还不满足就直接False处理。

我们来通过一个问题来分析:

我们在旅游的时候总是离不开交通工具的选择

1)我们可以首先进行判断高铁是否可以到达,如果满足就可以直接选择乘坐高铁。

2)如果不满足上条件可以判断是否可以乘坐火车到达,如果满足就可以选择乘坐火车。

3)如果不满足上条件可以判断是否可以乘坐飞机到达,如果满足就可以选择乘坐飞机,如果不能到达我们可以最后放弃出行或者更换旅游地点。

4)可以通过这个实例对应上流程图理解一下。

下面我们通过另外一个实例来再次学习:

关于体质指标如下:

体质指数(BMI)=体重(kg)÷身高*身高(m)
成人的BMI数值:
过轻:低于18.5
正常:18.5-23.9
过重:24-27
肥胖:28-32
严重肥胖, 高于32

我们可以通过一个人的体重和身高来判断他的体质指数是否合格。

代码如下:

height = float(input('Height(m):'))#输入身高
weight = float(input('Weight(kg):'))#输入体重
BMI = (weight) / ((height) ** 2)#BMI计算公式
if BMI < 18.5:
    print('过轻')
elif BMI <= 25:
    print('正常')
elif BMI <= 28:
    print('过重')
elif BMI <= 32:
    print('肥胖')
else:
    print('严重肥胖')

通过这个问题想必大家已经理解了elif的用法,在我们要分类讨论一个问题的时候使用这种方式可以更清晰的分析理解。

    2. if语句的嵌套

关于if语句的嵌套,就是指满足一个if语句之后,在它的条件语句里再进行一个if语句的判断,这种形式的嵌套形式在筛选数据或者条件过滤的时候常用到。

它的形式为:

if 表达式1:
     if 表达式2:
         if 表达式3:
             条件语句3
         条件语句2
     条件语句1
 else:
     条件语句4

它对应的流程图:

602.png

不知道大家有没有试过使用程序去判断一个年份是不是闰年,下面我们来通过这样一个问题来了解一下if语句的嵌套。

代码如下:

year = int(input("输入一个年份: "))
if (year % 4) == 0:
    if (year % 100) == 0:
        if (year % 400) == 0:
            print(year,"是闰年")  # 是整百年但能被400整除的
        else:
            print(year,"不是闰年")
    else:
        print(year, "是闰年")  # 不是整百年但能被4整除的
else:
    print(year,"不是闰年")

输出结构:

输入一个年份: 2000
2000 是闰年
输入一个年份: 1999
1999 不是闰年

这个问题的解决就是通过条件语句的嵌套来筛选得到答案,具体看一下嵌套形式以及缩进格式。当年份满足能整除4这一条件的时候可以进行第一次筛选,当年份能被4整除的同时还能被100整除的时候可以进行第二次筛选,当年份既能被4整除也能被100整除还能被400整除的时候进行第三次筛选,从而得到最终的判断。

    3. 推荐习题

100210051007100810101480


本文固定URL:https://www.dotcpp.com/course/232

第一章 人生苦短,我用Python
第二章 Python基础语法
第三章 Python入门语法
第四章 Python核心语法
第五章 函数
第六章 面向对象编程
第七章 模块
第八章 异常处理和程序调试
第九章 文件及目录操作
第十章 GUI编程
第十一章 进程和线程
第十二章 数据库管理
第十三章 算法
第十四章 爬虫
第十五章 实战篇
第十六章 后记
Dotcpp在线编译      (登录可减少运行等待时间)