聊聊python中not 與 is None的區(qū)別
原因:
list 獲得的數(shù)據(jù)為空: 顯示值為 [ ]

不同的判斷--- is None

----not

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

總之:
not 判斷的是內(nèi)容,而is None則涉及到這個 list 或 dict 是否聲明并定義
補充:關(guān)于Python not 及is None的有趣現(xiàn)象(兩者的區(qū)別)
筆者小白最近在刷題的過程中,遇到一個有趣的現(xiàn)象。
在使用 if A is None 來實現(xiàn)判斷條件的時候,最后程序沒有通過。這里的A代表之前定義的list類型的數(shù)據(jù)。最用改成if not A才通過。
那么到底判斷A為空兩者有什么區(qū)別呢。
筆者小白發(fā)現(xiàn)A為空時,not A 就是True,但是這并不代表該對象沒有定義,也不代表該對象沒有其它的屬性。它只是代表A中元素為空,僅此而已。
如果要看對象是否有定義,就要使用 is None來判斷。
補充:Python的if條件語句中的 X is None 和 not X的區(qū)別
在算法題和日常工作中總會遇到條件語句中有is None 和 not 出現(xiàn),總是分不清它們的用途,今天在這里做一個總結(jié)。
if X is None和if not X的具體用法
Python中not是一個邏輯判斷詞,結(jié)合布爾類型True和False來運用,not True就是False,not False就是True??戳艘恍┚W(wǎng)上資料后,可以把not X 理解為
if x is false, then True, else False
Python中 is None就是判斷對象是否有定義
舉個例子
list1 = []
list2 = None
print("\n--測試1--\n")
if list1 is None:
print("is None的用法,輸出list1的內(nèi)容:\t")
print(list1)
print("------分割線------")
if not list1:
print("not的用法,輸出list1的內(nèi)容:\t")
print(list1)
print("\n--測試2--\n")
if list2 is None:
print("is None的用法,輸出list2的內(nèi)容:\t")
print(list2)
print("------分割線------")
if not list2:
print("not的用法,輸出list2的內(nèi)容:\t")
print(list2)
結(jié)果如圖:

可以看到:
list1是[],此時只有not判斷有輸出,因為list1雖然是空,但是是有定義的,所以此時None的判斷不成立,所以沒有輸出,而list1中是空的,not空為真,所以輸出這個list1;
list2是None,此時兩個條件判斷都有輸出,因為 None == None,所以有輸出,not None 為True 所以也會有輸出。
總結(jié)一下:
在python中 None, False, 空字符串"", 0, 空列表[], 空字典{}, 空元組()都相當于False;
想使用if not x的話,一定要搞清楚x等于None, False, 空字符串"", 0, 空列表[], 空字典{}, 空元組()時對你的判斷沒有影響才行。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
python 數(shù)據(jù)庫查詢返回list或tuple實例
這篇文章主要介紹了python 數(shù)據(jù)庫查詢返回list或tuple實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05
python和pywin32實現(xiàn)窗口查找、遍歷和點擊的示例代碼
這篇文章主要介紹了python和pywin32實現(xiàn)窗口查找、遍歷和點擊的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-04-04
python常用request庫與lxml庫操作方法整理總結(jié)
一路學習,一路總結(jié),技術(shù)就是這樣,應(yīng)用之后,在進行整理,才可以加深印象。本篇文字為小節(jié)篇,核心總結(jié) requests 庫與 lxml 庫常用的操作2021-08-08

