布尔类型是python的数据类型之一,它也是计算机二进制的体现,一切都是0和1。Python中的布尔类型只有两种返回值:True
和False
在编程中,我们通常需要知道表达式是True还是False,我们可以计算python中的任何表达式,并获得两个答案之一,即True或False。
当在if语句中运行条件时,Python返回True或False。
bool() 函数也可以评估任何值,并返回True或False。
评估字符串和数字:
评估两个变量:
大多数值都为 True
如果有某种内容,则几乎所有值都将评估为 True。
除空字符串外,任何字符串均为 True。
除 0 外,任何数字均为 True。
除空列表外,任何列表、元组、集合和字典均为 True。
某些值为 False
实际上,除空值(例如 ()、[]、{}、“”、数字 0 和值 None)外,没有多少值会被评估为 False。当然,值 False 的计算结果为 False。
函数可返回布尔
Python 还有很多返回布尔值的内置函数,例如 isinstance() 函数,该函数可用于确定对象是否具有某种数据类型:
运算符用于对变量和值执行操作。
Python 在以下组中划分运算符:
赋值运算符用于为变量赋值:
Python总共有三个逻辑运算符: and
、or
和not
。
下面的表列举了布尔运算的结果,优先级为升序:
运算 | 表达式 | 结果 | 说明 |
---|---|---|---|
与运算 | x and y | 如果x为False则不考虑y;如果x为True则取决于y | ① |
或运算 | x or y | 如果x为False则取决于y,如果x为True则不考虑 | ② |
非运算 | not x | 如果x为False则为True,否则为False | ③ |
说明:
① and也是种“短路运算符”,只有当第一个为True时才去验证第二个。即:两个变量都为True时结果才为True。
② or是一种“短路运算符”,只有当第一个为False时才去验证第二个。即:两个变量只要有一个为True则为True。
③ not的优先级比非布尔运算符底,所以not a == b解释为not (a == b),并且a == not b是语法错误。
前面提到,布尔值表示的是“是非”,有比较才会有是非。Python中有8种比较运算。它们的优先级相同,比布尔运算的优先级高。比较运算符可以任意的连写,比如:x < y <= z相当于x < y and y <= z。
运算 | 含义 |
---|---|
< | 小于 |
<= | 小于等于 |
> | 大于 |
>= | 大于等于 |
== | 等于 |
!= | 不等于 |
is | 是对象 |
is not | 不是对象 |
总结布尔类型(True, False)表示“是非”,是比较运算的结果,是条件判断的结果,从而决定程序的流程和分支走向。
身份运算符用于比较对象,不是比较它们是否相等,但如果它们实际上是同一个对象,则具有相同的内存位置:
成员资格运算符用于测试序列是否在对象中出现:
位运算符用于比较(二进制)数字