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