每天学点Python之布尔类型

最后更新于:2022-04-01 16:22:50

# 每天学点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`会直接报错,需要加括号`a == (not b)`。 ### 比较操作 通过比较操作会返回布尔类型的值。除了普通的比较操作外,Python还支持is操作来判断两个对象是否是同一个对象,下面是Python支持的所有的比较操作: | 操作符 | 解释 | |-----|-----| | < | 小于 | | <= | 小于等于 | | > | 大于 | | >= | 大于等于 | | == | 等于 | | != | 不等于 | | is | 是相同对象 | | is not | 是不同对象 | **实例** 其他操作比较常见,给出一些is的用法示例: ~~~ a = None b = None # True,因为None只有唯一实例 r = a is b a = "22" b = "22" # True,直接声明的相同字符串也会指向同一个实例 r = a is b a = [1] b = [1] # False,相等但不是同一个实例 r = a is b a = [1] b = a c = a # True,指向同一个实例 r = b is c ~~~ ### 操作符重载 在Python中是支持操作符重载的,可以通过重载操作符来改变一般意义上的比较操作,具体内容会在学习object时再整理。
';