昨天最後留的幾句關於bool類型的轉換,其中有一行:
bool('False')
print一下結果,會發現是True。這是什麼緣由?python
由於在python中,如下數值會被認爲是False:
爲0的數字,包括0,0.0
空字符串,包括'',""
表示空值的None
空集合,包括(),[],{}
其餘的值都認爲是True。
None是python中的一個特殊值,表示什麼都沒有,它和0、空字符、False、空集合都不同。關於集合,咱們後面的課程再說。
因此,‘False’是一個不爲空的字符串,當被轉換成bool類型以後,就獲得True。
一樣bool(' ')的結果是True,一個空格也不能算做空字符串。
bool('')纔是False。編程
在if、while等條件判斷語句裏,判斷條件會自動進行一次bool的轉換。好比
a = '123'
if a:
print 'this is not a blank string'
這在編程中是很常見的一種寫法。效果等同於
if bool(a)
或者
if a != ''this