Python基礎(09)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 'a=T' or 'a=F'
複製代碼

計算結果不是布爾類型,而是字符串 'a=T',這是爲何呢? 由於Python把0、空字符串''和None當作 False,其餘數值和非空字符串都當作 True,因此: True and 'a=T' 計算結果是 'a=T' 繼續計算 'a=T' or 'a=F' 計算結果仍是 'a=T'bash

  • 要解釋上述結果,又涉及到 and 和 or 運算的一條重要法則:短路計算。
  1. 在計算 a and b 時,若是 a 是 False,則根據與運算法則,整個結果一定爲 False,所以返回 a;若是 a 是 True,則整個計算結果一定取決與 b,所以返回 b。
  2. 在計算 a or b 時,若是 a 是 True,則根據或運算法則,整個計算結果一定爲 True,所以返回 a;若是 a 是 False,則整個計算結果一定取決於 b,所以返回 b。 因此Python解釋器在作布爾運算時,只要能提早肯定計算結果,它就不會日後算了,直接返回結果。
相關文章
相關標籤/搜索