Python中的True和False
在Python中,None、任何數值型別中的0、空字串“”、空元組()、空列表[]、空字典{}都被當作False,還有自定義型別,如果實現了 __ nonzero __ () 或 __ len __ () 方法且方法返回 0 或False,則其例項也被當作False,其他物件均為True。
當只有一個運算子時:
True and True ==> True True or True ==> True
True and False ==> False True or False ==> True
False and True ==> False False or True ==> True
False and False ==> False False or False ==> False
複製程式碼
短路邏輯
- 表示式從左至右運算,若or的左側邏輯值為True,則短路or後所有的表示式(不管是and 還是or),直接輸出or左側表示式 。
- 表示式從左至右運算,若and的左側邏輯值為False,則短路其後所有and表示式,直到有or 出現,輸出and左側表示式到or的左側,參與接下來的邏輯運算。
- 若or的左側為False,或者and的左側為True則不能使用短路邏輯。
舉個例子:
def a():
print("a is true")
return True
def b():
print("b is true")
return True
def c():
print("c is false")
return False
def d():
print("d is false")
return False
print(a() and b() and c() and d())
print("*"*20)
print(a() or b() or c() or d())
print("*"*20)
print(a() and d() and c() and b())
複製程式碼
執行結果:
a is true
b is true
c is false
False
********************
a is true
True
********************
a is true
d is false
False
複製程式碼