Python解惑之True和False詳解
前言
眾所周知在Python 中常用的數(shù)據(jù)類型bool(布爾)類型的實例對象(值)就兩個,真和假,分別用True和False表示。在if 條件判斷和while 語句中經(jīng)常用到,不過在Python2.x 中,True 和False 卻有著奇怪的用法,就是真假可以相互被替換
先看下面代碼:
>>> True True >>> False False >>> if True: ... print True ... True >>> if not False: ... print False ... False
這段代碼邏輯理解起來沒任何問題,if 判斷中只要表達式的值返回 True,就執(zhí)行if 代碼塊中的語句。再來看下一段代碼:
>>> True, False = False, True >>> True False >>> False True >>> if not True: ... print False ... True >>> if False: ... print True ... False >>>
我把True 和False 互換了一下,就是傳說中的顛倒是非黑白。真變成了假,假變成了真。于是在條件判斷中,表達式的值返回False才執(zhí)行代碼塊中的語句。究竟是什么原因呢?
解惑
在Python2.7 中,True和False是兩個內(nèi)建(built-in)變量,內(nèi)建變量和普通自定義的變量如a, b, c一樣可以被重新賦值,因此我們可以把這兩個變量進行任意的賦值,比如:
True = 2 False = "abc"
甚至是True和False進行互換
tmp = True True = False False = tmp
互換后變量True指向了假對象,F(xiàn)alse指向了真對象:
因此,在Python 中我們不要隨意給True 和False 賦新的值,否則程序代碼邏輯都會亂套了。這也算是Python2.x 中一個坑,不過在Python3.x 中,終于把這個兩變量變成了關(guān)鍵字,也就是說,程序員再也沒法給這兩變量賦新的值了,從此True永遠指向真對象,F(xiàn)alse指向假對象,永不分離。用keyword模塊檢測True 和False 是否為關(guān)鍵字。
>>> import keyword >>> keyword.iskeyword('True') False
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者使用python能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
Python實現(xiàn)列表刪除重復元素的三種常用方法分析
這篇文章主要介紹了Python實現(xiàn)列表刪除重復元素的三種常用方法,結(jié)合實例形式對比分析了Python針對列表元素的遍歷、判斷、轉(zhuǎn)換等相關(guān)操作技巧,需要的朋友可以參考下2017-11-11PythonWeb項目Django部署在Ubuntu18.04騰訊云主機上
這篇文章主要介紹了PythonWeb項目Django部署在Ubuntu18.04騰訊云主機上的相關(guān)知識,本文通過代碼加文字說明的形式給大家介紹的非常詳細,具有一定的參考借鑒價值 ,需要的朋友可以參考下2019-04-04python調(diào)用API接口實現(xiàn)登陸短信驗證
在本篇文章里小編給大家整理的是關(guān)于python調(diào)用API接口實現(xiàn)登陸短信驗證的實例內(nèi)容,需要的朋友們可以參考下。2020-05-05解決Mac下首次安裝pycharm無project interpreter的問題
今天小編就為大家分享一篇解決Mac下首次安裝pycharm無project interpreter的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-10-10