前面我們了解到,布爾類型是Python的基礎數(shù)據(jù)類型,布爾類型只有True和False兩種值,本節(jié)課我們學習布爾類型的集中運算。
只有兩個布爾值都為 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變?yōu)镕alse,或者把False變?yōu)門rue:
not True # ==> False not False # ==> True
這些運算有什么用呢?計算機程序是由無數(shù)的邏輯分支組成的,通過布爾運算,可以在計算機中實現(xiàn)條件判斷,根據(jù)計算結果為True或者False,計算機可以自動執(zhí)行不同的后續(xù)代碼,因此學習布爾運算也是非常有必要的。
在Python中,布爾類型還可以與其他數(shù)據(jù)類型(字符串,數(shù)字等)做 and、or和not運算,請看下面的代碼:
a = True print(a and 0 or 99) # ==> 99
得到的計算結果不是布爾類型,而是數(shù)字99,這是為什么呢?
因為Python把0、空字符串和None看成False,其他數(shù)值和非空字符串都看成True,所以:
True and 0
計算結果是0
繼續(xù)計算0 or 99
計算結果是 99
因此,結果是99。
需要注意的是,not計算的優(yōu)先級是高于and和or的。
True and not False # ==> True
在上述布爾計算中,先計算not False = True
,然后再計算True and True
,因此得到True的結果。
a and b
時,如果 a 是 False,則根據(jù)與運算法則,整個結果必定為 False,因此返回 a;如果 a 是 True,則整個計算結果必定取決與 b,因此返回 b。a or b
時,如果 a 是 True,則根據(jù)或運算法則,整個計算結果必定為 True,因此返回 a;如果 a 是 False,則整個計算結果必定取決于 b,因此返回 b。所以Python解釋器在做布爾運算時,只要能提前確定計算結果,它就不會往后算了,直接返回結果。
請運行如下代碼,并解釋打印的結果:
a = 'python'
print('hello,', a or 'world')
b = ''
print('hello,', b or 'world')
解釋:通過 or 運算,可以把空字符串"變成"默認字符串,而非空字符串保持不變。
請驗證,完成請求
由于請求次數(shù)過多,請先驗證,完成再次請求
打開微信掃碼自動綁定
綁定后可得到
使用 Ctrl+D 可將課程添加到書簽
舉報