Python3中真真假假True、False、None等含義詳解

若數發表於2019-05-11

概述

在Python中,不僅僅和類C一樣的真假類似,比如1代表真,0代表假。Python中的真假有著更加廣闊的含義範圍,Python會把所有的空資料結構視為假,比如[](空列表)、{}(空集合)、''(空字串)等,而與之相反的非空資料結構即為真

簡單對比程式碼:

# 遍歷列表中的示例元素,獲取對應的真假:
for elenment in ['', 'S', [], [1, 2], {}, {3, 'SSS'}, 0, 0.0, 1, None]:
    if elenment:
        print(elenment, True) 
    else:
        print(elenment, False) 
複製程式碼

示例結果:

 False
S True
[] False
[1, 2] True
{} False
{'SSS', 3} True
0 False
0.0 False
1 True
None False
複製程式碼

None物件

在Python中None不僅僅代表False,它本身就是一個特殊的空物件,可以用來佔位,比如我們可以利用None實現類似C中定義陣列的方式,預定義列表的大小,實現對可能的索引進行賦值,而為賦值的索引都為None

L = [None] * 10
print(L)
複製程式碼

空列表定義結果

[None, None, None, None, None, None, None, None, None, None]
複製程式碼

布林(bool)值

在Python中布林值,True和False不僅僅可以表示真與假,甚至可以用於數學運算:

print(True+1)
print(False+1)
print(True+False)
複製程式碼

運算結果

2
1
1
複製程式碼

即True為1,False為0,為何Python中布林值可以進行數學運算? 我們可以利用isinstance驗證其是否為整型:

print(isinstance(True, int))
print(isinstance(False, int))
複製程式碼

驗證結果:

True
True
複製程式碼

即實質上在Python中布林值本身是整型(int),即bool型別就是int型別的子類。

相關文章