博文內容簡介:
1 Python中被作爲 假 的值 :False, None, 0, "", (), [], {}
2 Python中的bool類:bool類是int類的子類,內置的True和Flase是bool類的兩個實例
拓展: JavaScript中真假值。
一 、Python中的真假值
在Python條件判斷中的被視爲假的值:False, None, 0, "", (), [], {} 。下面我們深入的探討一下Python中的“真值”:
真值,程序的流程控制中,選擇執行的時候就需要用到真值,真值又稱爲布爾值。這是以在真值的研究上有巨大貢獻的George Boole命名的。
維基百科:
由於喬治·布爾在符號邏輯運算中的特殊貢獻,很多計算機語言中將邏輯運算稱爲布爾運算,將其結果稱爲布爾值。
在Python中邏輯運算的結果都是布爾值。都能用Python中的標準真值:True/False 表示, 它們都是Python的內置數據類型:bool類的實例 (關於bool類的談論在下面的拓展中)
Python解釋器將下面的值視爲假: False, None, 0, "", (), [], {}
- 標準值Flase和None
- 數值類型的0:整型(int)、浮點型(float)、複數(complex)的0值;0, 0.0
- 空序列:空字符串 、 空元組 、空列表
- 空映射:如空字典
除了上面的這些值之外,其他值都將被解釋器視爲真。
>>> not None
True
>>> not 0
True
>>> not []
True
>>> not ''
True
二、Python中的bool類
我們看一下官方的解釋:
class bool(int):
"""
bool(x) -> bool
Returns True when the argument x is true, False otherwise.
The builtins True and False are the only two instances of the class bool.
The class bool is a subclass of the class int, and cannot be subclassed.
"""
Python內置的True和Flase是bool類的兩個實例,bool類的是int類的一個子類。
使用bool()來對值進行“強制類型轉換”可以測試這些值的真假如下:
>>> bool(0)
False
>>> bool([])
False
在條件判斷的時候,我們不必進行這樣的顯式轉換,Python會自動進行隱式的轉換爲布爾值,因此我們能直接將任何值作爲判斷表達式。
注意:容易讓人弄混的是,這些‘假值’並不等於False, Python隱式的類型轉換纔是將這些值視爲假:
>>> [] == False False
Python中True和False本質:在C語言中標準真值:0,1 ;一切的非0數都被視爲真 ;其實CPython中,Python中的True和Flase不過就是C語言中 1 和 0 的別名。
>>> False + True + True
2
>>> False == 0
True
>>> True == 1
True
拓展:
js中的‘假’: js中標準真值是:true 和 false (boolean類型),被視爲假的6個值分別是: 0, '', null, undefined, NaN 和 false,其餘的值都被視爲真:如 {}, []等。