比较操作可以传递。例如 a < b == c 会校验是否 a 小于 b 并且 b 等于 c。
比较优先级:not and or
比较操作可以通过布尔运算符 and 和 or 来组合,并且比较操作(或其他任何布尔运算)的结果都可以用 not 来取反。这些操作符的优先级低于比较操作符;在它们之中,not 优先级最高, or 优先级最低,因此 A and not B or C 等价于 (A and (not B)) or C。和之前一样,你也可以在这种式子里使用圆括号。
布尔运算符 and 和 or 也被称为 短路 运算符:它们的参数从左至右解析,一旦可以确定结果解析就会停止。例如,如果 A 和 C 为真而 B 为假,那么 A and B and C 不会解析 C。当作用于普通值而非布尔值时,短路操作符的返回值通常是最后一个变量。
str1,str2,str3='',1,2
Str=str1 or str2 or str3 #空字符串为假,所以跳过了str1,确定了str2为真停止向后的解析
print(Str) # 1
拓展:
True :非0的数字,非空的字符串、列表、元组、字典
False :0、‘’、()、 []、 {}、 None
None不能理解为0;0是有意义的,None是一个特殊的空值
str1,str2,str3='',0,2
Str=str1 or str2 or str3 #空字符串为False,0为False所以跳过了str1,str2,而str3 为True 显示str3
print(Str) # 2