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