当前位置: 首页 > news >正文

22. if...elif...else 多向判断

22. if…elif…else 多向判断

文章目录

  • 22. if...elif...else 多向判断
    • 1. if...else...语句复习
    • 2. 体验代码
    • 3. 代码执行的顺序
    • 4. 课堂练习
    • 5. 总结

1. if…else…语句复习

在这里插入图片描述

在上一节中,我们学习了if...else...语句。

如果条件成立就执行if语句后面的代码块。

如果条件不成立就执行else语句后面的代码块。

if...else...语句是二选一,要么这样,要么那样。

但其实是生活中,n选一的情况更为多见。

【举例说明】

猜体重问题可能输出的3种情况:
1.猜多了;
2.猜少了;
3.猜对了。

我们的BMI值存在多种标准:

在这里插入图片描述

像这样n选一的条件判断语句,怎么写呢?

2. 体验代码

age = int(input("猜猜我今年多少岁:"))

# 如果if语句条件成立,输出【你猜大了】!
if age > 18 :
    print("你猜大了!")

# 如果elif语句条件成立,输出【你猜小了!】
elif age < 18 :
    print("你猜小了!")

# 如果if,elif语句都不成立,输出【你猜对了!】
else:
    print("你猜对了!")

【终端输出】

你猜对了!

像这样n选一的条件判断语句,我们通常用if...elif...else...语句来实现。

elif是else if的缩写。

【代码解析】

第1,2行代码:如果输入的数字大于18,输出你猜大了。
第3,4行代码:如果输入的数字小于18,输出你猜小了。
第5,6行代码:否则输出你猜对了(一个整数不大于18,也不小于18,那它就是18)。

if后的语句是当if判断条件成立时,执行的操作。

elif后的语句是当if判断不成立时,再判断一次,如果成立,执行的操作。

else后的语句是当以上所有判断条件都不成立时,执行的操作。

在这里插入图片描述

3. 代码执行的顺序

age = 20
if age > 18 :
    print("你猜大了!")
elif age < 18 :
    print("你猜小了!")
else:
    print("你猜对了!")
print("程序结束!")

【终端输出】

你猜大了!

在这里插入图片描述

age=20,程序执行第1,2,3,8行代码。

age=15,程序执行第1,2,4,5,8行代码。

age=18,程序执行第1,2,4,6,7,8行代码。

当条件满足时,程序就不会执行剩余的判断语句,程序自动跳出。

elif 语法和if语法是一致的,重点关注英文冒号和缩进即可。

在这里插入图片描述

4. 课堂练习

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YjQ02J0c-1661616214924)(./img/2.bmi.jpg)]

【题目要求】

  1. 从终端输入一个bmi值(养成习惯,每次输入数据时要考虑需要的数据类型)。
  2. 对照上面的图片进行判断,并输出对应的标准。
  3. 图片中没有小于18.5的指标,代码中增加了一个判断,当bmi小于18.5时,输出【太瘦了!】

【参考答案】

bmi = float(input("请输入你的bmi值:"))
if 18.5 <= bmi < 25 :
    print("正常!")
elif 25 <= bmi < 30 :
    print("超重!")
elif 30 <= bmi < 35 :
    print("1度肥胖!")
elif 35 <= bmi < 40 :
    print("2度肥胖!")
elif bmi >= 40 :
    print("3度肥胖!")
else:
    print("太瘦了!")

【终端输出】
3度肥胖!

5. 总结

在这里插入图片描述

相关文章:

  • ubuntu 命令行提示符 颜色
  • ubuntu 中的git 如何下载具体的reposotory github desktop桌面应用
  • 如何5秒解决PyCharm下Django项目执行之后出现TypeError: 'os.stat_result' object is not callable的问题
  • 使用当前目录的 Dockerfile 创建镜像 docker build使用dockerfile创建docker镜像
  • 推荐:学习人工智能(AI)的一些网站及教程资源
  • ubuntu linux后台的程序哪些正在运行
  • 超详细的GO语言windows系统开发环境的搭建及其项目的创建(2019年8月25日更新)
  • 值得你阅读的Hexo个人博客搭建
  • 如何知道一个镜像里有哪些容器 查看镜像里的容器
  • 每日算法之旅(第一天):枚举算法的平凡与伟大
  • 保存对容器的修改 当你对某一个容器做了修改之后(通过在容器中运行某一个命令),可以把对容器的修改保存下来,这样下次可以从保存后的最新状态运行该容器
  • 每日算法之旅(第三天):分而治之​算法思想
  • r语言从网页下载东西内容 r安装特定版本的r包 r从网页下载 安装包
  • 看这篇C语言基础就够了(2020-04-19)
  • 从ubuntu开始到docker conda 到velocyto.R
  • 【前端学习】-粗谈选择器
  • 2017 年终总结 —— 在路上
  • isset在php5.6-和php7.0+的一些差异
  • maven工程打包jar以及java jar命令的classpath使用
  • Vue源码解析(二)Vue的双向绑定讲解及实现
  • 编写高质量JavaScript代码之并发
  • 得到一个数组中任意X个元素的所有组合 即C(n,m)
  • 翻译 | 老司机带你秒懂内存管理 - 第一部(共三部)
  • 翻译--Thinking in React
  • 买一台 iPhone X,还是创建一家未来的独角兽?
  • 实习面试笔记
  • 跳前端坑前,先看看这个!!
  • 微信小程序开发问题汇总
  • 小程序测试方案初探
  • 06-01 点餐小程序前台界面搭建
  • #define
  • #stm32整理(一)flash读写
  • #数学建模# 线性规划问题的Matlab求解
  • (16)Reactor的测试——响应式Spring的道法术器
  • (17)Hive ——MR任务的map与reduce个数由什么决定?
  • (Redis使用系列) SpringBoot中Redis的RedisConfig 二
  • (附源码)ssm航空客运订票系统 毕业设计 141612
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • (十六)串口UART
  • (算法)前K大的和
  • (幽默漫画)有个程序员老公,是怎样的体验?
  • (原)Matlab的svmtrain和svmclassify
  • (转)平衡树
  • (转)人的集合论——移山之道
  • .form文件_一篇文章学会文件上传
  • .helper勒索病毒的最新威胁:如何恢复您的数据?
  • .NET Framework 4.6.2改进了WPF和安全性
  • .NET 命令行参数包含应用程序路径吗?
  • .NET开源快速、强大、免费的电子表格组件
  • @JSONField或@JsonProperty注解使用
  • [].shift.call( arguments ) 和 [].slice.call( arguments )
  • [100天算法】-x 的平方根(day 61)
  • [20160807][系统设计的三次迭代]
  • [20181219]script使用小技巧.txt
  • [④ADRV902x]: Digital Filter Configuration(发射端)