首先我们要知道,在python中数字 0 是假,其他数字都是真;空字符 “” 是假,其他字符都是真。
这其实是一个很简单的问题,用逻辑运算符计算数字、字符跟计算布尔值是同一个道理,只不过输出的结果有些不一样而已,但我学习的时候被教程中复杂的解释给整蒙了,所以你要先建立一个基础的意识:
python 中的 and 从左到右计算表达式,若所有值均为真,则返回最后一个值,若存在假,返回第一个假值
a = 1
b = 2
c = 3
print(a and b and c)
>>> 3 #a b c全部为真,输出最后的 c
a = 1
b = 0
c = 2
print(a and b and c)
>>> 0 #b 为假,则输出 b
a = 1
b = 0
c = ""
print(a and b and c)
>>> 0 #b c都为假,则输出先出现的 b
or 也是从左到右计算表达式,若所有值均为假,则返回最后一个值,若存在真,返回第一个真值
a = 0
b = 0
c = ""
print(a or b or c)
>>> #a b c全部为假,输出最后的 c (c是空字符串,所以什么也看不到)
a = 0
b = 1
c = 0
print(a or b or c)
>>> 1 #b 为真,则输出 b
not只会输出布尔值,对象是真则输出False,对象是假则输出True
a = 121
b = 0
print(not a)
>>> False
print(not b)
>>> True
c = '我真帅'
d = ''
print(not c)
>>> False
print(not d)
>>> True
在混合运算时,优先级顺序由大到小为 NOT、AND、OR
x = True
y = False
z = False
if x or y and z:
print("yes")
else:
print("no")
>>> yes
'''
在进行以上运算时,先计算(y and z)= False, 后计算 x or False = True, 最终输出 yes
'''
想了解python的其他运算可以参考Python3 运算符 | 菜鸟教程。