《人生苦短,我学Python》——条件判断->(if-elif-else)多向选择 条件嵌套

今天,我们来学习多向选择!if--elif--else

  • if 后的语句是当 if 判断条件成立时,执行的操作。
  • elif 后的语句是当 if 判断不成立时,再判断一次,如果成立,执行的操作。
  • else 后的语句是当以上所有判断条件都不成立时,执行的操作(即把 if 和 elif 判断条件无法囊括的情况全部划分到else这里)

下面就让我们来详细看看吧!


在这里插入图片描述

文章目录

  • 一、要点先知:
  • 二、基础讲解:
    • 1. elif:
    • 2. if-elif-else 语句的特性:
    • 3. 对比三种条件判断形式:
  • 三、拓展讲解:
    • 1. 条件嵌套:
    • 2. 注意事项:
      • (1). 语法错误
      • (2). 缩进错误
  • 四、刷题巩固:
    • 1. 简化代码:
    • 2. 释放大招:
    • 3. 两个较大数的乘积:


一、要点先知:

1️⃣第一种情况,程序运行到 if 判断时,如果条件为真,执行 if 的代码块。

  • 完成后,运行 if-elif-else 后面的代码。
    在这里插入图片描述

2️⃣第二种情况,程序运行到 if 判断时,如果条件为假,程序就直接跳开 if 判断的执行部分,再次运行到 elif 的判断,如果条件为真,执行 elif 的代码块。

  • 完成后,运行 if-elif-else 后面的代码。
    在这里插入图片描述

3️⃣第三种情况,程序运行到 elif 判断时,如果条件为假,程序就直接跳开 elif 判断的执行部分,运行 else 的代码块。

  • 完成后,运行 if-elif-else 后面的代码。
    在这里插入图片描述

二、基础讲解:

1. elif:

一个关键字,是 else 和 if 的缩写。[C语言中写作:if else() ]

  • 如果之前的 if 判断条件不成立,就再做一次新的判断,条件成立则执行 elif 后面的代码。

⚠️两个注意点:

  • 和 if ,else 一样,elif 语句的最后也需要一个冒号
  • elif 内的代码块,还是缩进四个空格

2. if-elif-else 语句的特性:

  1. 如果不满足 if 的条件,就判断是否满足 elif 的条件,满足就执行 elif 内的代码块,不满足就执行 else 内的代码块。

  2. elif 需与 if 搭配使用,它无法独立出现。必须先有 if ,然后才能使用 elif ,否则程序就会报错。
    在这里插入图片描述

  3. if 、elif 与 else 成互斥关系。

  • 互斥关系指的是,程序不会同时执行 if 内、 elif 内和 else 内的代码块,只会执行其中一个
    在这里插入图片描述

3. 对比三种条件判断形式:

现在,我们已经学习了三种判断语句:
if if-elseif-elif-else

在这里插入图片描述

  • 通过 if 、else 、elif 的搭配使用,我们可以覆盖条件判断中的所有情况,让程序按照我们预定的逻辑来执行很多自动化的工作。

✨if 语句属于单向判断。

  • 只要条件成立,就会运行 if 内的代码块;条件不成立,程序就会跳开 if 判断。
    在这里插入图片描述

✨if-else 语句属于双向判断。

  • 如果 if 的条件不成立,就执行 else 内的代码块。
    在这里插入图片描述

✨if-elif-else 语句属于多向判断(3个或以上的条件)。

  • 如果 if 的条件不成立,就执行 elif 再判断一次,如果 elif 的条件也不成立,就执行 else 内的代码块。
    在这里插入图片描述

并且,当判断的条件超过3个时,中间的多个条件都可以使用 elif ,无论中间有多少个 elif ,它和其他 if 、elif 都是互斥关系,即只会执行其中一个!


三、拓展讲解:

1. 条件嵌套:

之前处理的判断条件都是独立的,不存在条件之中还有条件的情况。

但是正如生活的选择题往往没有那么简单一样,在Python中也常会遇到判断条件继续细分的情况。

对于这种在条件成立的基础上又不断细分出其他条件的情况,称为嵌套


定义:嵌套是指将一个东西“套在”另一个东西里,就像套娃一样。
在这里插入图片描述
同样的,嵌套语句是指将一个语句装在另一个语句里。

  • 即在基础条件满足的情况下,再在基础条件里面增加额外的判断条件,即条件里套条件。只有当外层条件成立时,才有可能进入到内层条件当中继续执行。
    在这里插入图片描述

我们知道,Python是以缩进的空格数来区分代码块的

如果外层条件和内层条件的代码块都采用同样的缩进,Python 就没办法区分内外层条件是如何嵌套的。所以:

  • 外层条件 if 语句内的代码块缩进四个空格

  • 内层(第二层)条件 if语句内的代码块要在原有缩进的基础上再增加相应的缩进,也就是八个空格。
    在这里插入图片描述

注意⚠️ :缩进在Python语法规则中扮演重要的角色,千万不能忽视哦~


不仅是 if 嵌套 ,在Python中,if 、if-else 和 if -elif-else 之间也可以相互嵌套。

  • 嵌套原则与 if 嵌套类似。

如图所示,这是一段能实现分组和判断成绩的代码。

1个外层条件 if-else 语句判断变量 gender 的值,确定男女分组,2个内层条件 if-else 语句判断变量 score 的值,确定成绩情况。

在这里插入图片描述
值得注意的是,虽然使用嵌套可以大大提高代码的逻辑性和层次感。

但是,任何东西都不能过度使用❗️

  • 一般来说,超过3层以上的嵌套会使代码变得难以阅读,不符合Python简洁表达的理念。

在这里插入图片描述


2. 注意事项:

(1). 语法错误

(1)忘记 if 、elif 、else 后的冒号

冒号常常被遗漏,这是判断语句的固定格式,有冒号程序才知道下面是谁的代码块。

(2)嵌套时,没有通过缩进来分层

在每层嵌套条件中需要额外再加四个空格。

第1个else没有缩进,导致第2个 else 找不到对应的 if
在这里插入图片描述


(2). 缩进错误

if 、elif 、else 为互斥关系,其内部的代码块需要通过缩进形成。

为了保持风格统一,每个缩进用四个空格。
在这里插入图片描述


四、刷题巩固:

1. 简化代码:

使用elif,让代码变得简洁。

初始代码:

myWeight = 80
myHeight = 1.8
BMI = myWeight/(myHeight*myHeight)
if BMI < 18.5:print("under weight")
else:if BMI < 23.9:print("normal weight")else:if BMI < 27:print("over weight")else:if BMI <32:print("fat")else:print("obese")

示例代码如下:

myWeight=80
myHeight=1.8
BMI=myWeight/(myHeight*myHeight)
if BMI < 18.5 :print('under weight')
elif BMI <23.9 :print("normal weight")
elif BMI <27 :print("over weight")
elif BMI <32 :print("fat")
else :print('obese')

2. 释放大招:

有两个变量 技能状态 skill 和点击状态 click ,分别给它们赋值 110 和 1 。

第一层判断使用 if语句 判断,如果 skill 大于等于100,就输出"大招准备就绪",

同时进入第二层判断,使用 if-else 语句判断,如果 click 等于1,就输出"大招已发送",否则,输出"大招未发送"。

示例代码如下:

skill=110
click=1
if skill>=100 :print("大招准备就绪")if click==1 :print("大招已发送")else :print("大招未发送")

3. 两个较大数的乘积:

已知:

a = 135
b = 98
c = 129

在a、b、c中选择两个数字相乘,输出两个数最大的乘积number

示例代码如下:

a=135
b=98
c=129
number=a*b
if number<=a*c :number=a*c
if number<=b*c :number=b*c
print(number)    

好了,到这里,python中的条件判断算是结束了,相信你也是收获满满吧!
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/100509.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java反射:探索对象创建与类信息获取

文章目录 1. 对象的创建2. 类的初始化2.1 类的加载2.2 类的连接2.3 类的初始化 3. 反射是什么&#xff1f;4. 获取Class类对象4.1 使用类名.class4.2 使用对象的getClass()方法4.3 使用Class.forName() 5. 获取构造器对象5.1 使用getConstructors()和getDeclaredConstructors()…

垃圾回收 - 标记压缩算法

压缩算法是将标记清除算法与复制算法相结合的产物。 1、什么是标记压缩算法 标记压缩算法是由标记阶段和压缩阶段构成。 首先&#xff0c;这里的标记阶段和标记清除算法时提到的标记阶段完全一样。 接下来我们要搜索数次堆来进行压缩。压缩阶段通过数次搜索堆来重新填充活动对…

【MQTT接收数据写入数据库】

MQTT接收数据写入数据库 1.搭建MQTT服务器 参考上一篇文章 2.安装数据库mysql sudo apt update sudo apt install mysql-server创建一个数据库和数据表存储mqtt消息 首先&#xff0c;登录到MySQL服务器&#xff1a; mysql -u root -p输入你的root用户密码。默认root 3.创…

网络技术一:计算机网络概述

计算机网络概述 计算机网络定义 一组自治计算机互联的集合 计算机网络基本功能 资源共享 综合信息服务 分布式处理与负载均衡 计算机网络的类型 局域网 LAN&#xff1a;由用户自行建设&#xff0c;使用私有地址组建的内部网络 城域网 MAN&#xff1a;由运营商或大规模…

zabbix 自动发现

哈喽大家好&#xff0c;我是咸鱼 昨天老大让我初始化一批服务器&#xff0c;吭哧吭哧弄完之后需要把这批机器添加到 zabbix 上去 但是我发现一台一台添加效率好低&#xff0c;而且特别繁琐&#xff0c;当时我没有想出有什么好的方法&#xff0c;今天上网搜了一下相关资料之后…

Linux cat 的作用

Linux中的cat命令用于连接文件并打印到标准输出设备&#xff08;通常是终端&#xff09;。 它的主要作用有以下几点&#xff1a; 查看文件内容&#xff1a;cat命令可用于查看文本文件的内容&#xff0c;将文件的内容从第一行到最后一行打印到终端。 合并文件&#xff1a;cat命…

vue Router从入门到精通

文章目录 介绍使用多级路由实例 路由的query参数传递参数接收参数实例 命名路由作用使用 params参数声明接收params参数传参接收参数实例 props配置实例 router-link的replace属性编程式路由导航作用使用实例 缓存路由组件两个新的生命周期钩子实例 路由守卫作用分类全局守卫独…

【Cisco Packet Tracer】交换机划分Vlan实验

&#x1f490; &#x1f338; &#x1f337; &#x1f340; &#x1f339; &#x1f33b; &#x1f33a; &#x1f341; &#x1f343; &#x1f342; &#x1f33f; &#x1f344;&#x1f35d; &#x1f35b; &#x1f364; &#x1f4c3;个人主页 &#xff1a;阿然成长日记 …

ORB-SLAM2算法15之回环检测线程Loop Closing

文章目录 0 引言1 概述2 回环主函数3 回环检测4 计算Sim3变换5 回环矫正 0 引言 ORB-SLAM2算法7详细了解了System主类和多线程、ORB-SLAM2学习笔记8详细了解了图像特征点提取和描述子的生成、ORB-SLAM2算法9详细了解了图像帧、ORB-SLAM2算法10详细了解了图像关键帧、ORB-SLAM2…

Python小知识 - Python爬虫进阶:如何克服反爬虫技术

Python爬虫进阶&#xff1a;如何克服反爬虫技术 爬虫是一种按照一定的规则&#xff0c;自动抓取网页信息的程序。爬虫也叫网页蜘蛛、蚂蚁、小水滴&#xff0c;是一种基于特定算法的自动化程序&#xff0c;能够按照一定的规则自动的抓取网页中的信息。爬虫程序的主要作用就是从一…

实时操作系统Freertos开坑学习笔记:(五):任务调度和时间片调度

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、任务调度1.开启任务调度器函数2.启动第一个任务 二、任务切换的原理三、时间片调度1.基本概念2.看一个实际例程①我们设置滴答定时器中断时间为50ms&#x…

基于JavaScript粒子流动效果

这是一个HTML文件&#xff0c;主要包含了一些CSS样式和JavaScript代码&#xff0c;用于创建一个动画效果。 在CSS部分&#xff0c;定义了一些基本的样式&#xff0c;包括页面的背景颜色、位置、大小等。特别的&#xff0c;定义了两种球形元素&#xff08;.ball_A 和 .ball_B&am…