python空值判断方式(if xxx和if xxx is None的区别及说明)
if xxx 和if xxx is None的区别
一、 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和其他空值对象区分开来
如下代码输出所示:
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
结论:
需要区分[],{},'',()等空值对象与None的区别时时可使用这种写法
贴下简单的测试代码
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


最新评论