是真是假?
入门教程、案例源码、学习资料、读者群
请访问: python666.cn
上次最后的示例中,有这样一个写法:
if x:print('x 非空')
这种写法会起到什么效果呢?
要理解这个,我们要先理解 bool 类型。
bool 类型是一种表示逻辑状态的类型,这个类型只有2个值,True 和 False,对应逻辑上的「真」和「假」。
逻辑在编程中非常重要。大量的复杂程序本质上都是建立在「真」与「假」的基本逻辑之上。而 bool 所表示的就是这种最单纯最本质的 True/False,真与假,是与非。
最常见的布尔值是通过「比较运算符」得到的,例如:
8 > 7-2 <= -31 + 1 == 2'ab' != 'cd'
这些式子看起来像是数学上的不等式,但仔细看会有区别,因为这些式子在数学上未必成立。比如其中的 -2 <= -3,数学上是错误的。但在编程中,「错误」也是一种结果,这个结果就是 False。另外3个正确的表达式,结果都是 True。
常用的比较运算符包括:
| > | 大于 |
| < | 小于 |
| >= | 大于等于 |
| <= | 小于等于 |
| == | 等于(比较两个值是否相等。两个等号,不同于变量赋值) |
| != | 不等于 |
比较运算符的结果是 bool 类型的值。
还有一种逻辑运算符:
| not | 逻辑“非” | 如果 x 为 True,则 not x 为 False |
| and | 逻辑“与” | 如果 x 为 True,且 y 为 True,则 x and y 为 True |
| or | 逻辑“或” | 如果 x、y 中至少有一个为 True,则 x or y 为 True |
逻辑运算符通常用于 bool 类型值之间的运算,这个我们下次再细说。
比较运算符的两边都可以加上变量和计算式,代码执行时会将变量值代入计算出bool结果。例如:
time = 2.5hobbies = '🎤💃🤘🏀'print(time >= 2.5)print('🎤' + '💃' + '🤘' + '🏀' == hobbies)
输出
TrueTrue
回到一开始的问题,对于 if 语句来说,就是根据后面条件的 bool 结果,来决定要不要执行它内部的代码块:
True 就执行,False 就跳过
而不管 if 后面的条件是什么类型,程序都会把它当做一个 bool 值来判断,相当于自动替你做了一次 bool 类型转换。转换基于这样一个原则:
如果是空值或者0值,结果就是False;否则就是True
具体来说包括:
为0的数字,包括0,0.0
空字符串,包括'',""
表示空值的 None
空集合,包括(),[],{}
其他的值都认为是True
最后来几个例子复习一下,想想结果是什么,再到编辑器里验证一下你的想法对不对:
bool(-1)bool('0')bool(" ")bool('False')"" == False1 == True0 is None0.1 + 0.2 == 0.3
对于 Python 中的 bool 类型,你还有什么想了解的内容?欢迎在留言区讨论。
本书从 Python 和 Excel 结合使用的角度讲解处理分析数据的思路、方法与实战应用。不论是希望从事数据分析岗位的学习者,还是其他职业的办公人员,都可以通过本书的学习掌握 Python 分析数据的技能。书中创新性地将 ChatGPT 引入到教学当中,用 ChatGPT 答疑并提供实训代码,并介绍了使用 ChatGPT 辅助学习的一些实用技巧,给学习者带来全新的学习方式。
公众号的读者朋友们购买后可在后台联系我,加入读者交流群,Crossin会为你开启陪读模式,解答你在阅读本书时的一切疑问。
_往期文章推荐_