浅谈对python中if、elif、else的误解


Posted in Python onAugust 20, 2020

今天下午在练习python时用了“if...if...else...”的分支结构,结果运行出来吓我一跳。原来我想当然的认为“if...if...else...”是“if...elif...else...”的简化结构(这个错误的看法好像还是从学C语言继承过来的)。学了这么多天才发现其中的区别啊。下面先说说python,然后再说一下C语言里面的if语句。

 “python中通过if、elif、else等保留字提供单分支、二分支和多分支结构。”

1.单分支结构(if语句)

if<条件>:
  <语句块>

2. 二分支结构(if-else语句)

if <条件>:
  <语句块1>
else :
  <语句块2>

3.多分支结构(if-elif-else语句)(else可选)

if <条件1> :
  <语句块1>
elif <条件2> :
  <语句块2>
...
else :
  <语句块N>

因此如果依次写了几个“if语句”,没有else或者elif,那么每个“if语句”都将会被评估一遍,结果为True的条件下面的语句块都会被执行。同样如果你写了几个“if语句”,然后在最后写了一个else,那也只能被认为是几个单分支结构然后并列了一个二分支结构,而不是一个多分支结构。因此在运行的时候,除最后一个if外,前面的“if语句”都将会被执行一次,然后再执行最后的“if-else”这个二分支。而这个else恰好又是除最后一个if条件的补集,一般包含前面某个if语句的条件,因此else下面的语句块可能会被执行,而不会达到“if-elif-else”只取其一的效果。所以才会有我今天下午的吃惊!

我用一个简单的代码来对比一下这个结果:

第一幅图执行完第一个“if语句”,又执行了下面的“if-else”;第三幅图则是一个多分支,判断第一个条件结果为True后,执行下面的语句块,结束后跳出整个“if-elif-else”结构,运行结果正确。

浅谈对python中if、elif、else的误解

在C语言里类似的结构好像被称为选择结构,最常用的有以下三种形式:

(1) if(表达式) 语句1

(2) if(表达式)
   语句1
  else
   语句2

(3) if(表达式1) 语句1
  else if(表达式2) 语句2
  else if(表达式3) 语句3
  .
  .
  .
  else if(表达式m) 语句m
  else 语句m+1

用法和python的单分支、二分支、多分支类似,所以说我从学C语言的时候这个地方就搞混了。

到此这篇关于浅谈对python中if、elif、else的误解的文章就介绍到这了,更多相关python中if、elif、else内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python内置的HTTP协议服务器SimpleHTTPServer使用指南
Mar 30 Python
Linux 下 Python 实现按任意键退出的实现方法
Sep 25 Python
python3中int(整型)的使用教程
Mar 23 Python
python中数据爬虫requests库使用方法详解
Feb 11 Python
解决tensorflow模型参数保存和加载的问题
Jul 26 Python
python Selenium实现付费音乐批量下载的实现方法
Jan 24 Python
python flask框架实现重定向功能示例
Jul 02 Python
python中break、continue 、exit() 、pass终止循环的区别详解
Jul 08 Python
Python安装及Pycharm安装使用教程图解
Sep 20 Python
python实现ip地址的包含关系判断
Feb 07 Python
Scrapy-Redis之RedisSpider与RedisCrawlSpider详解
Nov 18 Python
利用python实现汉诺塔游戏
Mar 01 Python
ubuntu16.04升级Python3.5到Python3.7的方法步骤
Aug 20 #Python
Python自动化测试中yaml文件读取操作
Aug 20 #Python
通过代码实例解析Pytest运行流程
Aug 20 #Python
Python爬虫实现自动登录、签到功能的代码
Aug 20 #Python
python openCV实现摄像头获取人脸图片
Aug 20 #Python
Python实现自动签到脚本功能
Aug 20 #Python
python如何随机生成高强度密码
Aug 19 #Python
You might like
codeigniter框架The URI you submitted has disallowed characters错误解决方法
2014/05/06 PHP
PHP中使用foreach()遍历二维数组的简单实例
2016/06/13 PHP
javascript读取xml
2006/11/04 Javascript
新浪的图片新闻效果
2007/01/13 Javascript
jQuery实现点击文本框弹出热门标签的提示效果
2013/11/17 Javascript
举例详解JavaScript中Promise的使用
2015/06/24 Javascript
详解jQuery移动页面开发中的ui-grid网格布局使用
2015/12/03 Javascript
jQuery使用模式窗口实现在主页面和子页面中互相传值的方法
2016/03/01 Javascript
jQuery Validation Engine验证控件调用外部函数验证的方法
2017/01/18 Javascript
Express与NodeJs创建服务器的两种方法
2017/02/06 NodeJs
ReactNative短信验证码倒计时控件的实现代码
2017/07/20 Javascript
深入理解vue.js中$watch的oldvalue与newValue
2017/08/07 Javascript
node.js中使用Export和Import的方法
2017/09/18 Javascript
深入理解vue中slot与slot-scope的具体使用
2018/01/26 Javascript
jQuery实现标签子元素的添加和赋值方法
2018/02/24 jQuery
js中Object.defineProperty()方法的不详解
2018/07/09 Javascript
如何自定义微信小程序tabbar上边框的颜色
2019/07/09 Javascript
Openlayers实现地图全屏显示
2020/09/28 Javascript
[02:24]DOTA2痛苦女王 英雄基础教程
2013/11/26 DOTA
Python切片知识解析
2016/03/06 Python
Python实现曲线点抽稀算法的示例
2017/10/12 Python
Python嵌套列表转一维的方法(压平嵌套列表)
2018/07/03 Python
Selenium控制浏览器常见操作示例
2018/08/13 Python
对python实现二维函数高次拟合的示例详解
2018/12/29 Python
Windows下Pycharm远程连接虚拟机中Centos下的Python环境(图文教程详解)
2020/03/19 Python
Python浮点型(float)运算结果不正确的解决方案
2020/09/22 Python
在求职信中如何凸显个人优势
2013/10/30 职场文书
商务英语求职自荐信范文
2013/12/24 职场文书
《夸父追日》教学反思
2014/02/26 职场文书
妇女儿童发展规划实施方案
2014/03/16 职场文书
班级学习计划书
2014/04/27 职场文书
观看信仰心得体会
2014/09/04 职场文书
2014群众路线学习笔记
2014/11/06 职场文书
怎样写家长意见
2015/06/04 职场文书
导游词之寿县报恩寺
2020/01/19 职场文书
Mysql InnoDB 的内存逻辑架构
2022/05/06 MySQL