python空值判断方式(if xxx和if xxx is None的区别及说明)
Urmsone 人气:0if 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")
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
加载全部内容