天天看點

python布爾類入門_Python的布爾類型

前面我們了解到,布爾類型是Python的基礎資料類型,布爾類型隻有True和False兩種值,本節課我們學習布爾類型的集中運算。

與運算

隻有兩個布爾值都為 True 時,計算結果才為 True。

True and True # ==> True

True and False # ==> False

False and True # ==> False

False and False # ==> False

或運算

隻要有一個布爾值為 True,計算結果就是 True。

True or True # ==> True

True or False # ==> True

False or True # ==> True

False or False # ==> False

非運算

把True變為False,或者把False變為True:

not True # ==> False

not False # ==> True

這些運算有什麼用呢?計算機程式是由無數的邏輯分支組成的,通過布爾運算,可以在計算機中實作條件判斷,根據計算結果為True或者False,計算機可以自動執行不同的後續代碼,是以學習布爾運算也是非常有必要的。

在Python中,布爾類型還可以與其他資料類型(字元串,數字等)做 and、or和not運算,請看下面的代碼:

a = True

print(a and 0 or 99) # ==> 99

得到的計算結果不是布爾類型,而是數字99,這是為什麼呢?

因為Python把0、空字元串和None看成False,其他數值和非空字元串都看成True,是以:

True and 0計算結果是0

繼續計算0 or 99計算結果是 99

是以,結果是99。

需要注意的是,not計算的優先級是高于and和or的。

True and not False # ==> True

在上述布爾計算中,先計算not False = True,然後再計算True and True,是以得到True的結果。

短路計算

在計算a and b時,如果 a 是 False,則根據與運算法則,整個結果必定為 False,是以傳回 a;如果 a 是 True,則整個計算結果必定取決與 b,是以傳回 b。

在計算a or b時,如果 a 是 True,則根據或運算法則,整個計算結果必定為 True,是以傳回 a;如果 a 是 False,則整個計算結果必定取決于 b,是以傳回 b。

是以Python解釋器在做布爾運算時,隻要能提前确定計算結果,它就不會往後算了,直接傳回結果。