每天学点Python之布尔类型
Python中的布尔类型有两个常量True和False表示。
布尔值转化
Python中的布尔值是可以转化为数值的,True表示1,而False表示0,可以对其进行数值运算,但不建议这么做,会引起代码的混乱。
真值测试
在Python中所有的对象都可以进行真值测试,下面罗列一下判断为假的情况:
- None
- False
- 数值中的零,包括0,0.0,0j(虚数)
- 空序列,包括空字符串(”),空元组(()),空列表([])
- 空的字典{}
- 自定义的对象的实例,该对象的__bool__方法返回False或者__len__方法返回0
除了以上的情况外,所有的对象在if或者while语句中的表现都为真。
布尔操作
在Python中布尔值可以进行或、且、否三种操作,与很多语言不同的是,Python中不是用符号,而是用英文单词来表示,分别是or、and和not。
需要注意的是or和and都支持短路操作,如果or的左边返回True,则右边就不会判断;同理如果and左边返回False,右边也不会进行判断。
not的优先级很低,not a == b
表示的是not (a == b)
,而表达式a == not b
会直接报错,需要加括号