python中的逻辑操作符
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