青少年、零基础、初学者Python编程从入门到精通,“老马带小马 一块学Python”编程系列。

先来认识一下本节将涉及到的几个Python关键字:

  • if:英文意思是“如果、假若”,它将是本节学习的重点。
  • else:英文意思是“其他的、另外的”,一般与if配合使用。
  • elif:相当于“else + if”的组合,表达“另外,如果”的意思,与if配合使用。
  • and:英文意思是“和、与”,在Python中作为逻辑操作符,表示“并且”的意思。
  • or:英文意思是“或者”,在Python中作为逻辑操作符,表示“或者”的意思。
  • True:英文意思是“真实的,确实的”,在Python中属于一种数据类型(“布尔类型”),且表示“真”。
  • False:英文意思是“不真实的,不确实的”,在Python中属于一种数据类型(“布尔类型”),且表示“假”,与True相反。“布尔类型”与“整型”(代表着整数)、“浮点型”(代表着小数)一样,代表了一类数据,且“布尔类型”只有两个值:True和False。

先通过下面的例子了解一下“if”的使用:

chengji

  • 第1行,赋值chengji变量为88;
  • 第2行,在“if”后、“:”(再次提醒必须是英文冒号)前,有一个条件判断表达式,比如在这里,条件判断表达的意思是:“chengji大于等于60”,要是满足了这个条件,电脑就会执行“:”下面缩进的程序块,即打印出“及格!”,要是不满足这个条件,就不会执行“:”下面缩进的程序块。
  • 第3行,紧跟在if语句的“:”后面,并缩进排版,为从属于第二行if的程序块,要是if行的条件判断不满足,则该行代码不会执行。

接着,介绍一下常见的比较运算符:

  • <:小于,要是运算符左侧的数小于右侧的数,则表达式条件判断正确,我们则可以说这个表达式为真或True,比如:“1<2”这个表达式则为True,或者说这个表达式的值为True。
  • <=:小于等于,要是左侧的数大于右侧的数,则表达式条件判断为假,我们则可以说这个表达式为假或False,或者说这个表达式的值为False。
  • >:大于
  • >=:大于等于
  • ==:等于,我们前面章节提到过,一个等于,即“=”,表示赋值操作,把右侧的值赋值给左侧的变量,而“==”,两个连写的等于则表示条件判断,判断左侧的数是否等于右侧的数,若相等则为True,否则为False。
  • !=:不等于

再通过下面的例子看看“if”与“else”的配合使用:

chengji

  • 第1行至第3行与上面的例子是一样的,当if后面的条件判断为True时(即chengji满足大于等于60时),则执行if下面的程序块,即打印“及格!”,若不满足,则从属于if的程序块不会执行。
  • 第4行,需要注意的是“else”必须与“if”对齐,意味着两者是并列的,而且两者是二选一的关系,且“else”后面也有个“:”,意味着紧跟着的、缩进的代码属于“else”的程序块。
  • if与else二选一的关系,意味着要是if后的条件判断为True,则执行完从属于if的程序块后,后面的else以及从属于else的程序块都会直接跳过,不会被执行;而要是if后面的条件判断为False,从属于if的程序块不会被执行,而是直接跳到从属于else的程序块,打印出“不及格!”。建议大家可以按照上一节学到的程序调试方法,通过给chengji设置不同的值,实际单步调试、跟踪一下不同条件判断情况下程序的执行路径,能够更清晰本节我们讲到的条件控制语句。

接下来,再通过下面的例子看看“if-elif-else”的配合使用:

chengji

上述程序的执行流程是这样的:执行第1行->执行第2行->执行第4行->执行第5行,然后整个程序运行完毕、退出。

从以上代码中可以看得出来,对于条件控制语句,第一个条件判断总是使用“if”关键字,“if”之后、“else”之前要是还有其他条件判断,则一律采用“elif”关键字,这三个关键字组成了一个完整的“if-elif-else”控制块,而且所有这些关键字必须是严格对齐的;另外,从上面的执行流程中可以看得出来,程序执行时,只要有“else”存在,程序一定且只会执行一次从属于if、elif或者else的程序块。对于if或者elif行,只要其后的条件满足(即为True),则执行完毕其下的程序块后,立即跳出整个“if-elif-else”控制块,如果if以及elif语句中的条件均不满足,才会执行else下的程序块。

接下来,我们从另外一个角度再仔细分析一下上述代码,因为chengji的取值为88,所以它其实同时满足第1、第2和第3个elif中的条件判断,即该值大于等于80,也大于等于70,同时还大于等于60,但是,因为该值首先符合了第1个elif中的条件判断(即该值大于等于80),执行完该条件判断下的程序块(即打印完毕“良好!”)后,程序就跳出整个“if-elif-else”控制块了,所以后面的条件判断即使满足要求,也不会被执行。

如上图所示,对于存在包含关系的条件判断,比如“大于等于90”所涵盖的范围,从属于“大于等于80”所涵盖的范围,而“if-elif-else”条件判断的特点是:从上至下,按顺序执行条件判断,只执行第一个符合条件的程序块,因此,为了准确、精准的匹配,对于存在包含关系的条件判断,一定要按照涵盖的范围,由小范围到大范围进行排序。还是以上一段代码为例,要是“大于等于70”排在了“大于等于80”前面,则对于88分的成绩,首先满足了“大于等于70”的条件,则执行完毕打印“中等!”,就跳出了整个“if-elif-else”控制块,导致结果判断失误。

另外一种更保险的做法就是对各项条件判断进行精准描述,避免对排序的依赖,如下所示,if及elif所在的行(连同其下所属的代码块)任意调换顺序,都不会导致结果判断失误。

if 

在上面的条件判断中用到了“and”逻辑操作符,以“chengji >= 80 and chengji < 90”为例,表达的意思为“chengji大于等于80,而且同时满足小于90”,即,只有“and”左右两侧的条件都为真的情况下,“and”连接的整个表达式才为真;同理,要是由“or”连接的话,则“or”左右两侧的条件只要有一个为真,则“or”连接的整个表达式就为真。补充说明一下,对于存在“and”、“or”的表达式,之所以先进行他们两侧的条件判断,最后才进行“and”、“or”的运算,因为“逻辑操作符”的运算优先级低于“比较运算符”,就像“+-”运算符的优先级低于“×÷”一样,所以先进行“×÷”运算,后进行“+-”运算。

在本节的最后,我们总结一下“if-elif-else”条件控制的流程图,如下图所示。


07.合意就执行,不行就拉倒-if/else条件控制(一)​mp.weixin.qq.com

ftl if else判断_07.合意就执行,不行就拉倒-if/else条件控制(一)相关推荐

  1. cpp 条件判断 大于等于_07.合意就执行,不行就拉倒-if/else条件控制(一)

    青少年.零基础.初学者Python编程从入门到精通,"老马带小马 一块学Python"编程系列. 先来认识一下本节将涉及到的几个Python关键字: if:英文意思是"如 ...

  2. 如何判断线程池已经执行完所有任务了?

    作者 | 磊哥 来源 | Java面试真题解析(ID:aimianshi666) 转载请联系授权(微信ID:GG_Stone) 很多场景下,我们需要等待线程池的所有任务都执行完,然后再进行下一步操作. ...

  3. 判断bat脚本已执行结束的一种方法

    在实际编码场景中,可能存在需要执行完bat脚本,才接着执行下面的代码,这个时候我们就需要判断bat脚本是否执行完毕.下面将给出一种解决方法: 可在bat脚本执行完毕后生成一个文件,然后通过监控这个文件 ...

  4. mysql 输出判断,mysql判断_mysql判断SQL语句是否执行成功的方法

    摘要 腾兴网为您分享:mysql判断SQL语句是否执行成功的方法,中国体育,智慧党建,月星家居,虚拟按键等软件知识,以及闪点卡密,proxycap,大众车联网,平顶山软件,人格测试,ok支付,美图秀秀 ...

  5. comparator 多个条件控制_JUnit5学习之四:按条件执行

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类和汇总,及配套源码,涉及Java.Docker.Kubernetes.DevO ...

  6. python条件判断练习题_条件控制练习题

    条件控制练习题 1.判断日期是否合法 1.1 题目要求 使用input函数接受用户输入,用户输入月份和日期,比如"3月15日",请写程序判断这个日期是否合法,为了简化编程难度, 只 ...

  7. 有两个房间,一间房里有三盏灯,另一间房有控制着三盏灯的三个开关, 这两个房间是分割开的,从一间里不能看到另一间的情况。 现在要求受训者分别进这两房间一次,然后判断出这三盏灯分别是由哪个开关控制的。

    有两个房间,一间房里有三盏灯,另一间房有控制着三盏灯的三个开关, 这两个房间是分割开的,从一间里不能看到另一间的情况. 现在要求受训者分别进这两房间一次,然后判断出这三盏灯分别是由哪个开关控制的. 有 ...

  8. 1.定义一个结构体变量(包括年、月、日),编写程序,要求输入年、月、日,程序能判断该年是否为闰年。(闰年的条件是符合下面两者之一: ①能被4整除,但不能被100整除; ②能被100整除,又能被400整

    1.定义一个结构体变量(包括年.月.日),编写程序,要求输入年.月.日,程序能判断该年是否为闰年.(闰年的条件是符合下面两者之一: ①能被4整除,但不能被100整除: ②能被100整除,又能被400整 ...

  9. 【Dart 教程系列第 17 篇】Dart 之 every 判断数组中是否每个元素都满足指定的条件

    这是[Dart 教程系列第 17 篇],如果觉得有用的话,欢迎关注专栏. Dart 判断数组中是否每个元素都满足指定的条件用 every() 方法,源代码定义如下 bool every(bool te ...

最新文章

  1. 欧盟AI道德准则草案出炉
  2. Spring Cloud Gateway 入门
  3. PHP获取表单值--同时获取下拉框的Value和Text值
  4. PHP-代码审计-XSS
  5. 工作中的git实际使用
  6. Matlab矩阵、元胞数组的合并拼接
  7. (八大方法、逐层深入,有你一定没见过的)使用INSERT语句向表中插入数据
  8. 中班音乐 机器人教案_【李小娜老师优秀教案分享】中班音乐活动小树叶教案及反思...
  9. LeetCode 长度最小的子数组
  10. javascript 笔记--变量
  11. (二)路径规划算法---C++结合OpenCV实现RRT算法
  12. Windows10怎么改分辨率?Win10分辨率设置教程(最新)
  13. 图解HTTP读书笔记
  14. #今日论文推荐# 将有色液体图像转换成透明液体,CMU教机器人准确掌控向杯中倒多少水
  15. 升级Windows11遇到VirtualBox兼容性问题(附解决办法)
  16. 【网络】Padavan固件获取运营商ipv6设置
  17. Ubuntu 16.04 LTS设置屏幕分辨率并永久保存所设置的分辨率
  18. 4个方面告诉你Stimulsoft.Drawing的作用和使用方式|附下载链接
  19. 0X01 ——位运算
  20. LTspice 电路仿真入门

热门文章

  1. Python入门100题 | 第052题
  2. LeetCode题组:第1162题-地图分析
  3. QT中添加背景图片,颜色,以及字体等
  4. Hiring data scientists
  5. RPM安装命令总结--转载
  6. jstl sql标签使用
  7. 孙宇晨大战Vitalik
  8. 还能开发搜索引擎吗?
  9. Docker Review - 图形化工具 Portainer
  10. 学习笔记Hadoop(五)—— Hadoop集群的安装与部署(2)—— Hadoop集群部署模式、配置固定IP