如何理解Python中的None


Python中的None是一個經常被用到的知識點,但是很多人對於None的內涵把握的還是不夠精確,今天就和我一起好好理解下這個小知識點吧。

1.None表示空,但它不等於空字符串、空列表,也不等同於False,通過下面的代碼進行驗證。

 a = ''
b = False
c = []

print(a==None)   #比較值
print(b==None)
print(c==None)

print(a is None)

False
False
False
False

2.在寫代碼的過程中,會對某些代碼進行判空操作。比如有一個變量a,那么if not a和if a is None兩者有區別嗎?如果說沒有區別,那么不管a為何值時,這兩個判斷語句會返回相同的結果,但事實是這樣嗎?一起看下面這段代碼,體會一下對None的判空操作

 def fun():
    return None

a =fun()
if not a:   #邏輯運算
    print('S')
else:
    print('F')

if a is None:
    print('S')
else:
    print('F')


S
S

運行代碼發現,結果是一樣的,這是由於我們調用函數時,會返回None,那么此時兩個判斷語句返回的結果是一樣的,但是如果我們將a的值換成一個空列表,會出現什么結果呢?

 def fun():
    return None

a = []
if not a:   #邏輯運算
    print('S')
else:
    print('F')

if a is None:
    print('S')
else:
    print('F')

S
F

運行結果,發現會打印不一樣的值。那么這是為什么呢?對於not a它的意思相當於True,所以會打印出S,而a is None是比較運算,它們不屬於同一種類型,因此會出現不一樣的打印值。

本文轉載於tps://www.py.cn/faq/python/13508.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM