python空值判斷方式(if xxx和if xxx is None的區(qū)別及說明)
if xxx 和if xxx is None的區(qū)別
一、 if xxx
None,’’,0,[],{},() ,False都被判斷為空值(not xxx等價)
如下代碼輸出所示,
if __name__ == '__main__':
? ? print("---not None == (not '') == (not 0) == (not []) == (not {}) == (not ()) == (not False)---")
? ? print(not None == (not '') == (not 0) == (not []) == (not {}) == (not ()) == (not False))輸出
---not None == (not '') == (not 0) == (not []) == (not {}) == (not ()) == (not False)---
True
if xxx
如下代碼輸出所示,
if __name__ == '__main__':
? ? print("---output a,b---")
? ? a = []
? ? b = None
? ? print("a=[]")
? ? print("b=None")
? ? print("--- if x")
? ? if a:
? ? ? ? print("a")
? ? else:
? ? ? ? print("None")
? ? if b:
? ? ? ? print("b")
? ? else:
? ? ? ? print("None")輸出
---output a,b---
a=[]
b=None
--- if x
None
None
結論:
將空列表換成上述的其他空類型,結果一樣。
如果需要過濾None值和空對象時(如[],{},''等),可使用這種寫法
二、 if xxx is None
該寫法可將None和其他空值對象區(qū)分開來
如下代碼輸出所示:
if __name__ == '__main__':
? ? a = []
? ? b = None
? ? print("a=[]")
? ? print("b=None")
? ? print("--- is None")
? ? if a is None:
? ? ? ? print("None")
? ? else:
? ? ? ? print("a")
? ? if b is None:
? ? ? ? print("None")
? ? else:
? ? ? ? print("b")輸出
---output a,b---
a=[]
b=None
--- is None
a
None
結論:
需要區(qū)分[],{},'',()等空值對象與None的區(qū)別時時可使用這種寫法
貼下簡單的測試代碼
if __name__ == '__main__':
? ? print("---not None == (not '') == (not 0) == (not []) == (not {}) == (not ()) == (not False)---")
? ? print(not None == (not '') == (not 0) == (not []) == (not {}) == (not ()) == (not False))
? ? print("---output a,b---")
? ? a = []
? ? b = None
? ? print("a=[]")
? ? print("b=None")
? ? print("--- if x")
? ? if a:
? ? ? ? print("a")
? ? else:
? ? ? ? print("None")
? ? if b:
? ? ? ? print("b")
? ? else:
? ? ? ? print("None")
? ? print("--- is None")
? ? if a is None:
? ? ? ? print("None")
? ? else:
? ? ? ? print("a")
? ? if b is None:
? ? ? ? print("None")
? ? else:
? ? ? ? print("b")
? ? print("--- not")
? ? if not a:
? ? ? ? print("None")
? ? else:
? ? ? ? print("a")
? ? if not b:
? ? ? ? print("None")
? ? else:
? ? ? ? print("b")
? ? print("--- is not None")
? ? if a is not None:
? ? ? ? print("a")
? ? else:
? ? ? ? print("None")
? ? if b is not None:
? ? ? ? print("B")
? ? else:
? ? ? ? print("None")以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
python中ThreadPoolExecutor線程池和ProcessPoolExecutor進程池
這篇文章主要介紹了python中ThreadPoolExecutor線程池和ProcessPoolExecutor進程池,文章圍繞主題相關資料展開詳細的內容介紹,具有一定的參考價值,感興趣的小伙伴可以參考一下2022-06-06
使用Python中OpenCV和深度學習進行全面嵌套邊緣檢測
這篇文章主要介紹了使用Python中OpenCV和深度學習進行全面嵌套邊緣檢測,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-05-05
python解決報錯ImportError: Bad git executable.問題
這篇文章主要介紹了python解決報錯ImportError: Bad git executable.問題。具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-06-06
Python DataFrame.groupby()聚合函數,分組級運算
python的pandas包提供的數據聚合與分組運算功能很強大,也很靈活,本文就帶領大家一起來了解groupby技術,感興趣的朋友跟隨小編一起來看下2018-09-09

