App下載

python中not 與 is None有什么區(qū)別

著名野迪表演藝術(shù)家 2021-08-17 11:18:03 瀏覽數(shù) (5861)
反饋

在python中有兩個(gè)關(guān)鍵字很是令小編在意:not和is none,他們兩個(gè)關(guān)鍵字,長得很像,語義又有些接近,那么這兩個(gè)關(guān)鍵字該怎么區(qū)別呢,not和is None有什么區(qū)別呢?接下來的這篇文章帶你了解。

原因:

list 獲得的數(shù)據(jù)為空: 顯示值為 [ ]

獲得數(shù)據(jù)為空

不同的判斷--- is None

不同的判斷

----not

取非

兩者結(jié)果不一樣分析:

總之:

not 判斷的是內(nèi)容,而is None則涉及到這個(gè) list 或 dict 是否聲明并定義

補(bǔ)充:關(guān)于Python not 及is None的有趣現(xiàn)象(兩者的區(qū)別)

筆者小白最近在刷題的過程中,遇到一個(gè)有趣的現(xiàn)象。

在使用 if A is None 來實(shí)現(xiàn)判斷條件的時(shí)候,最后程序沒有通過。這里的A代表之前定義的list類型的數(shù)據(jù)。最用改成if not A才通過。

那么到底判斷A為空兩者有什么區(qū)別呢。

筆者小白發(fā)現(xiàn)A為空時(shí),not A 就是True,但是這并不代表該對(duì)象沒有定義,也不代表該對(duì)象沒有其它的屬性。它只是代表A中元素為空,僅此而已。

如果要看對(duì)象是否有定義,就要使用 is None來判斷。

補(bǔ)充:Python的if條件語句中的 X is None 和 not X的區(qū)別

在算法題和日常工作中總會(huì)遇到條件語句中有is None 和 not 出現(xiàn),總是分不清它們的用途,今天在這里做一個(gè)總結(jié)。

if X is None和if not X的具體用法

Python中not是一個(gè)邏輯判斷詞,結(jié)合布爾類型True和False來運(yùn)用,not True就是False,not False就是True。看了一些網(wǎng)上資料后,可以把not X 理解為

if x is false, then True, else False

Python中 is None就是判斷對(duì)象是否有定義

舉個(gè)例子

list1 = []
list2 = None
print("
--測(cè)試1--
")
if list1 is None:
    print("is None的用法,輸出list1的內(nèi)容:	")
    print(list1)
print("------分割線------")
if not list1:
    print("not的用法,輸出list1的內(nèi)容:	")
    print(list1)
print("
--測(cè)試2--
")
if list2 is None:
    print("is None的用法,輸出list2的內(nèi)容:	")
    print(list2)
print("------分割線------")
if not list2:
    print("not的用法,輸出list2的內(nèi)容:	")
    print(list2)

結(jié)果如圖:

運(yùn)行結(jié)果

可以看到:

list1是[],此時(shí)只有not判斷有輸出,因?yàn)閘ist1雖然是空,但是是有定義的,所以此時(shí)None的判斷不成立,所以沒有輸出,而list1中是空的,not空為真,所以輸出這個(gè)list1;

list2是None,此時(shí)兩個(gè)條件判斷都有輸出,因?yàn)?None == None,所以有輸出,not None 為True 所以也會(huì)有輸出。

總結(jié)一下:

在python中 None, False, 空字符串"", 0, 空列表[], 空字典{}, 空元組()都相當(dāng)于False;

想使用if not x的話,一定要搞清楚x等于None, False, 空字符串"", 0, 空列表[], 空字典{}, 空元組()時(shí)對(duì)你的判斷沒有影響才行。

以上就是python中not與isNone有什么區(qū)別的全部內(nèi)容,希望能給大家一個(gè)參考,也希望大家多多支持W3Cschool。



0 人點(diǎn)贊