前面我們了解到,布林型別是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直譯器在做布林運算時,只要能提前確定計算結果,它就不會往後算了,直接返回結果。
python中建立類role 初識Python類
吐槽 學習物件導向就像你追乙個女神一樣,剛剛有點感覺了,過幾天又陷入絕望的感覺,很蛋疼。類的語法 classperson object print learning class test person test就是類person的例項化物件 例項化,就是以person類為模板,在記憶體裡開闢一塊空間...
兒童python程式設計入門 兒童程式設計python入門
經常會有小朋友問我,我想做個黑客,我該學什麼程式語言?或者有的小朋友會說 我要學c,我要做病毒 其實對於這些小朋友而言他們基本都沒有接觸過程式語言,只是通過影視或者其他地方看到的一些東西認為黑客很酷,超級厲害,因此也萌生了這樣的想法。我也認為黑客很厲害,他們不只是會一門程式語言那麼簡單,要想成為他們...
兒童程式設計python入門 兒童程式設計python入門
經常會有小朋友問我,我想做個黑客,我該學什麼程式語言?或者有的小朋友會說 我要學c,我要做病毒 其實對於這些小朋友而言他們基本都沒有接觸過程式語言,只是通過影視或者其他地方看到的一些東西認為黑客很酷,超級厲害,因此也萌生了這樣的想法。我也認為黑客很厲害,他們不只是會一門程式語言那麼簡單,要想成為他們...