Python解惑之True和False詳解
前言
眾所周知在Python 中常用的數(shù)據(jù)類(lèi)型bool(布爾)類(lèi)型的實(shí)例對(duì)象(值)就兩個(gè),真和假,分別用True和False表示。在if 條件判斷和while 語(yǔ)句中經(jīng)常用到,不過(guò)在Python2.x 中,True 和False 卻有著奇怪的用法,就是真假可以相互被替換
先看下面代碼:
>>> True True >>> False False >>> if True: ... print True ... True >>> if not False: ... print False ... False
這段代碼邏輯理解起來(lái)沒(méi)任何問(wèn)題,if 判斷中只要表達(dá)式的值返回 True,就執(zhí)行if 代碼塊中的語(yǔ)句。再來(lái)看下一段代碼:
>>> True, False = False, True >>> True False >>> False True >>> if not True: ... print False ... True >>> if False: ... print True ... False >>>
我把True 和False 互換了一下,就是傳說(shuō)中的顛倒是非黑白。真變成了假,假變成了真。于是在條件判斷中,表達(dá)式的值返回False才執(zhí)行代碼塊中的語(yǔ)句。究竟是什么原因呢?
解惑
在Python2.7 中,True和False是兩個(gè)內(nèi)建(built-in)變量,內(nèi)建變量和普通自定義的變量如a, b, c一樣可以被重新賦值,因此我們可以把這兩個(gè)變量進(jìn)行任意的賦值,比如:
True = 2 False = "abc"
甚至是True和False進(jìn)行互換
tmp = True True = False False = tmp
互換后變量True指向了假對(duì)象,F(xiàn)alse指向了真對(duì)象:

因此,在Python 中我們不要隨意給True 和False 賦新的值,否則程序代碼邏輯都會(huì)亂套了。這也算是Python2.x 中一個(gè)坑,不過(guò)在Python3.x 中,終于把這個(gè)兩變量變成了關(guān)鍵字,也就是說(shuō),程序員再也沒(méi)法給這兩變量賦新的值了,從此True永遠(yuǎn)指向真對(duì)象,F(xiàn)alse指向假對(duì)象,永不分離。用keyword模塊檢測(cè)True 和False 是否為關(guān)鍵字。
>>> import keyword
>>> keyword.iskeyword('True')
False
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者使用python能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
Python OpenCV實(shí)現(xiàn)視頻分幀
這篇文章主要為大家詳細(xì)介紹了Python OpenCV實(shí)現(xiàn)視頻分幀,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-06-06
python中如何利用matplotlib畫(huà)多個(gè)并列的柱狀圖
python是一個(gè)很有趣的語(yǔ)言,可以在命令行窗口運(yùn)行,下面這篇文章主要給大家介紹了關(guān)于python中如何利用matplotlib畫(huà)多個(gè)并列的柱狀圖的相關(guān)資料,需要的朋友可以參考下2022-01-01
Python將主機(jī)名轉(zhuǎn)換為IP地址的方法
今天小編就為大家分享一篇Python將主機(jī)名轉(zhuǎn)換為IP地址的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-08-08
PyCharm中鼠標(biāo)懸停在函數(shù)上時(shí)顯示函數(shù)和幫助的解決方法
這篇文章主要介紹了PyCharm中鼠標(biāo)懸停在函數(shù)上時(shí)顯示函數(shù)和幫助,本文給大家分享問(wèn)題解決方法,對(duì)PyCharm鼠標(biāo)懸停函數(shù)上顯示函數(shù)的解決方法感興趣的朋友跟隨小編一起看看吧2022-11-11
python實(shí)現(xiàn)全盤(pán)掃描搜索功能的方法
今天小編就為大家分享一篇python實(shí)現(xiàn)全盤(pán)掃描搜索功能的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-02-02
解讀Scrapy回調(diào)函數(shù)callback傳遞參數(shù)的方式
這篇文章主要介紹了解讀Scrapy回調(diào)函數(shù)callback傳遞參數(shù)的方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12
AI人工智能 Python實(shí)現(xiàn)人機(jī)對(duì)話
這篇文章主要為大家詳細(xì)介紹了AI人工智能應(yīng)用,本文擬使用Python開(kāi)發(fā)語(yǔ)言實(shí)現(xiàn)類(lèi)似于WIndows平臺(tái)的“小娜”,,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-11-11

