python空值判断方式(if xxx和if xxx is None的区别及说明)
作者:Urmsone
这篇文章主要介绍了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")以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
