首先要明確一點,Python的邏輯運算子,可以用來操作任何型別的表示式(不侷限於Bool型別),且運算後的結果也不一定是Bool型別的,而是其左右其中一個表示式的值
表示式1 and 表示式2
python不一定會去計算左右兩邊的表示式的值,某些情況其只會計算左邊表示式,而不會計算右邊的表示式。
對於 and 邏輯運算子,兩邊都為真,則結果才為真;而只要第一個表示式的結果為假,則整個邏輯表示式的結果就是假,不需要再去計算後面的表示式的結果。
-
表示式1為 true時
邏輯表示式的結果為 表示式2
-
表示式1為 false時
邏輯表示式的結果為 表示式1
print(100 and 200)
print(0 and 400)
print("" and "https://www.cnblogs.com/jack-nie-23/")
print("https://www.cnblogs.com/jack-nie-23/" and 2)
>> 200
>> 0
>>
>> 2
表示式1 or 表示式2
對於 or 邏輯運算子,當兩邊的表示式都為假時則整個邏輯表示式的結果為假,而當表示式1的結果為真時,則整個邏輯表示式的結果就是為真,此時python不會再去計算表示式2的值。
-
表示式1為 true 時
邏輯表示式的結果為 表示式1
-
表示式1為 false 時
邏輯表示式的結果為 表示式2
print(100 or 200)
print(0 or 400)
print("" or "https://www.cnblogs.com/jack-nie-23/")
print("https://www.cnblogs.com/jack-nie-23/" or 2)
>> 100
>> 400
>> https://www.cnblogs.com/jack-nie-23/
>> https://www.cnblogs.com/jack-nie-23/
還有一件事
Python中表達為 false 的值有以下這些:
-
為0的數字,包括0,0.0
-
空字串,包括 '', "" 這裡指的是空字串,不包括空字串 ' '," "。
-
表示空值的None
-
空集合,包括(),[],{}