010-Python中布爾類型

我們已經(jīng)了解了Python支持布爾類型的數(shù)據(jù),布爾類型只有True和False兩種值,但是布爾類型有以下幾種運(yùn)算:

與運(yùn)算:只有兩個(gè)布爾值都為 True 時(shí),計(jì)算結(jié)果才為 True。

True and True   # ==> True
True and False   # ==> False
False and True   # ==> False
False and False   # ==> False

或運(yùn)算:只要有一個(gè)布爾值為 True,計(jì)算結(jié)果就是 True。

True or True   # ==> True
True or False   # ==> True
False or True   # ==> True
False or False   # ==> False

非運(yùn)算:把True變?yōu)镕alse,或者把False變?yōu)門rue:

not True   # ==> False
not False   # ==> True

布爾運(yùn)算在計(jì)算機(jī)中用來做條件判斷,根據(jù)計(jì)算結(jié)果為True或者False,計(jì)算機(jī)可以自動(dòng)執(zhí)行不同的后續(xù)代碼。

在Python中,布爾類型還可以與其他數(shù)據(jù)類型做 and、or和not運(yùn)算,請(qǐng)看下面的代碼:

a = True
print a and 'a=T' or 'a=F'

計(jì)算結(jié)果不是布爾類型,而是字符串 'a=T',這是為什么呢?

因?yàn)镻ython把0、空字符串''和None看成 False,其他數(shù)值和非空字符串都看成 True,所以:

True and 'a=T'計(jì)算結(jié)果是'a=T'
繼續(xù)計(jì)算'a=T' or'a=F'計(jì)算結(jié)果還是'a=T'
要解釋上述結(jié)果,又涉及到 and 和 or 運(yùn)算的一條重要法則:短路計(jì)算。

  1. 在計(jì)算 a and b 時(shí),如果 a 是 False,則根據(jù)與運(yùn)算法則,整個(gè)結(jié)果必定為 False,因此返回 a;如果 a 是 True,則整個(gè)計(jì)算結(jié)果必定取決與 b,因此返回 b。

  2. 在計(jì)算 a or b 時(shí),如果 a 是 True,則根據(jù)或運(yùn)算法則,整個(gè)計(jì)算結(jié)果必定為 True,因此返回 a;如果 a 是 False,則整個(gè)計(jì)算結(jié)果必定取決于 b,因此返回 b。

所以Python解釋器在做布爾運(yùn)算時(shí),只要能提前確定計(jì)算結(jié)果,它就不會(huì)往后算了,直接返回結(jié)果。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • ¥開啟¥ 【iAPP實(shí)現(xiàn)進(jìn)入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個(gè)線程,因...
    小菜c閱讀 7,357評(píng)論 0 17
  • 1.Python中數(shù)據(jù)類型 Python中數(shù)據(jù)類型 計(jì)算機(jī)顧名思義就是可以做數(shù)學(xué)計(jì)算的機(jī)器,因此,計(jì)算機(jī)程序理所當(dāng)...
    ChinaGoodStaff閱讀 464評(píng)論 0 1
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,616評(píng)論 19 139
  • 1、Python中數(shù)據(jù)類型 1、整數(shù) Python可以處理任意大小的整數(shù),當(dāng)然包括負(fù)整數(shù),在Python程序中,整...
    極客小寨閱讀 286評(píng)論 0 1
  • 突然想找你聊天,打開窗口,突然發(fā)現(xiàn)上次的結(jié)尾是我,你沒有回,欲言又止了。有時(shí)候疏遠(yuǎn)不是討厭,是因?yàn)椋阋桓辈蝗蔽业?..
    余生一諾閱讀 213評(píng)論 0 0

友情鏈接更多精彩內(nèi)容