python中主要有三个逻辑操作符,分别是:and、or、not。
and:且,所有人为真才为真。
or:或,一个为正就是真。
not:非,取反。
>>> print(3>2 and 3 >4)False #所有人为真方为真>>> print(3>2 and 3 >1)True >>> print(3>2 or 3 > 4)True #一人为真就可真>>> print(3>6 or 3 > 4)False>>> print(not False)True #取反>>> print(not True)False
逻辑操作符的优先级:()> not > and > or
同等优先级下,从左到右依次计算。
>>> print(2>1 and 3 < 4 or 4 > 5 and 2 <1) 优先级 真 or 假 真 True>>> print(1>2 and 3<4 or 4>5 and 2>1 and 9>8 or 7<6) 优先级 假 or 假 or 假 假 or 假 假False>>> print(1>2 and 3<4 or 4>5 and 2>1 and 9>8 or 7>6) True>>> print(not 2>1 and 3<4 or 4>5 and 2>1 and 9>8 or 7<6) 假 and 假 or 假 or 假 假 False
小技巧:多个同样的操作符放在一块,一起判断。
布尔值只有两个False和True,False代表0,True代表1
除0和False以外所有的字符串和数字都为真
>>> bool(False)False>>> bool(1)True>>> bool(0)False>>> bool(10)True>>> bool('123wqeq')True
以上所说得知识会在下面得到运用。
>>> print(3 or 4)3>>> print(2 or 4)2>>> print(0 or 4)4>>> print(-1 or 4)-1>>> print(3 and 4)4>>> print(2 and 4)4>>> print(0 and 4)0>>> print(-1 and 4)4
总结:除了0代表假之外其余的全部都为真。关于3 or 4 为啥返回3,3 and 4返回4我也说不明白,只能做如下总结。
X or Y :真与假在一起返回真
>>> print(4 or 0)4>>> print(0 or 4)4
XY均为真,返回前面的
X and Y : 真与假在一起返回假
>>> print(4 and 0)0>>> print(0 and 4)0
:真和真在一起,返回后面的
>>> print(3 and 4)4>>> print(2 and 4)4
看一个例子:
>>> print(0 and 3 or 4 or 1 or 2) 0为假,返回0 0 or 4有真返真,故返回4 4 or 1 or 2 全为真返回前面的4
>>> print(3 or 3>2)3 #返回前面的,3>2可以看作内层计算,所以结果为True>>> print(3>2 or 3)True