一文详解python条件判断

今天给大家带来python条件判断
1、前言到目前为止,python基础系列的文章中的程序都是一条一条语句顺序执行的。在本章中,我会重点介绍让程序选择是否执行语句块的方法。
python程序为什么可以实现自我选择的功能呢?因为它可以根据条件进行判断是否执行下面的语句块。
2、条件判断1.1 语句块什么是语句块呢?
语句块是在条件为真(条件语句)时执行或者执行多次(循环语句)的一组语句。在代码前放置空格来缩进语句即可创建语句块。
关于缩进:
使用tab键也可以缩进语句块。python将一个tab字符解释为到下一个tab字符位置的移动,而一个tab字符位置为8个空格,但是标准且推荐的方式是只用空格,尤其是在每个缩进需要4个空格的时候。
在python中,英文版冒号(:)用来标识语句块的开始,块中的每一个语句都是缩进的(缩进量相同)。当回退到和已经已经闭合的块一样的缩进量时,就表示当前块已经结束了(这个不用担心,很多程序编辑器和集成开发环境都知道如何缩进语句块,可以帮助用户轻松把握缩进)!!!
1.2 条件和条件语句传说中的if语句就要闪亮登场啦~~~
使用条件语句不要少写了冒号(:),而且必须是英文版本的。
if语句对于if语句,若条件判定为真,那么后面的语句块就会被执行。若条件判定为假,语句块就会被跳过,不会执行。
1 #if语句2 age = 203 if age >= 18:4 print('your age is', age)5 print('adult')else语句else子句只是增加一种选择(之所以叫做子句是因为它不是独立的语句,而是if的一部分)。if...else...搭配,若if语句为false,不执行if下的语句块,而去else下的语句块。
1 #if...else...语句2 age = 33 if age >= 18:4 print('your age is', age)5 print('adult')6 else:7 print('your age is', age)8 print('teenager')elif语句如果需要检查多个条件,就可以使用elif,它是else if的简写,也是if和else语句的联合使用,即使用elif做更细致的判断:
1 #if...elif...elif...else...语句2 age = 33 if age >= 18:4 print('adult')5 elif age >= 6:6 print('teenager')7 else:8 print('kid')条件语句总结if : elif : elif : else: 注意点if语句执行有个特点,它是从上往下判断,如果在某个判断上是true,把该判断对应的语句执行后,就忽略掉剩下的elif和else语句,所以,请测试并解释为什么下面的程序打印的是teenager:
1 #条件语句执行特点:从上往下判断2 age = 203 if age >= 6:4 print('teenager')5 elif age >= 18:6 print('adult')7 else:8 print('kid')input()运用最后看一个有问题的条件判断。很多同学会用input()读取用户的输入,这样可以自己输入,程序运行得更有意思,更有人性化。其实啊,error往往出现在意想不到的地方。不信,来看段代码:
#if语句中使用input()方法birth = input('birth: ')if birth int()为什么呢?我在刚接触python时,用到此处报错也是百思不得其解,同样纠结了好久。直到后来,我才慢慢懂了。
这是因为input()返回的数据类型是str,str不能直接和整数比较,必须先把str转换成整数。python提供了int()函数来完成这件事情。
s = input('birth: ')birth = int(s)if birth < 2000: print('00前')else: print('00后')因此,在编程中,条件判断是非常重要的。条件判断可以让计算机自己做选择,python的if...elif...else很灵活。条件判断从上向下匹配,当满足条件时执行对应的块内语句,后续的elif和else都不再执行。
1.3 条件运算符
条件判断,if语句重在判断并选择是否执行,而没有过多涉及条件本身。
下面是python中常见的条件运算符:
表达式描述
x == y x 等于 y
x y x 大于 y
x >= y x 大于等于 y
x <= y x 小于等于 y
x != y x 不等于 y
x is y x和y是同一个对象
x is not y x和y不是同一对象
x in y x是y容器的成员
x not in y x不是y容器的成员
在python中,比较运算和赋值运算是可以连接的——几个运算符可以连在一起使用,比如:0 < age >>python == python3 true4 > >>python == python5 false6 > >>python = python7 file , line 18 syntaxerror: can't assign to literal9 #很明显,单个相等运算符是赋值运算符,是用来改变值的,而不能用来比较二、is:同一性运算符
这个定义很不友好,什么是同一性?首次接触真是云里雾里啊,真正理解is运算符才知道同一性的真谛。
乍一看,is运算符和==一样,事实上却不同。
示例代码如下:
1 #同一性运算符:is 2 #is和==之间的差异 3 > >>x = y = [1,2,3] 4 > >>z = [1,2,3] 5 > >>x == y 6 true 7 > >>x == z 8 true 9 > >>x is y10 true11 > >>y is x12 true13 > >>x is z14 false15 > >>z is x16 false注:==运算符比较两个对象是否相等,is判定两者是否等同(同一个对象)。
三、in:成员资格运算符
四、布尔运算符:and、or和not
五、短路逻辑
短路???条件表达式中的布尔运算符就有这个特性。什么是短路逻辑呢?如下所示:
条件表达式:a and b,该表达式何时返回true呢?即a与b同时为真,若a判定为false,则无论b是真是假,该表达式都为为false。
事实上,如果x为假,条件表达式会返回x的值,否则返回y的值。这种行为被称为短路逻辑。而短路逻辑同样适用于or运算符。
小结等号运算符:==,单个等号=为赋值运算符;python的条件判断if...elif...else很灵活;条件判断从上向下匹配;短路逻辑适用于布尔运算符(and,or)。好了,今天就介绍到这儿。

ISP和ICP在MCU上有什么功能?它们之间有什么区别?
蚂蚁金服表示支付宝人脸识别非常安全 信息安全有足够的保证
FPGA的泥浆电参数测量系统的设计分析和实现过程
美国围堵华为遭破功 欧洲电信与华为达成战略合作
定位技术在物联网市场呈现百家争鸣态势
一文详解python条件判断
如何实现高效的远程电池监控系统
为什么说2021年是5G To B规模化商用元年?
redis多线程还能保证线程安全吗
电源工程师设计全攻略(四):交流稳压电源设计
十个月1.2万亿的芯片市场应该留在中国,致力打造中国芯的人最美
基于磁敏传感技术的位移测量编码与识别[图]
如何实现电源应用的散热仿真
浅析无线应变仪模块的远程应用
摩尔定律的终结篇:英特尔受困 NVIDIA反受益
香奈儿宣布不再使用珍稀动物皮
这款SUV花百亿经费研发,却只卖18万?传祺GS8、吉利博越、荣威RX5都不是对手!
Verilog:for循环的综合实现
vivo冲上销量冠军 荣耀迎来全球化加速年
首个2nm芯片定了!富士通自研CPU将由台积电生产