目录
- if xxx 和if xxx is None的区别
- 一、 if xxx
- 二、 if xxx is None
if xxx 和if xxx is None的区别
一、 if xxx
None,&rsquo编程客栈;’,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 xNoneNone
结论:
将空列表换成上述的其他空类型,结果一样。
如果需要过滤None值和空对象时(如[],{},''等),可使用这种写法
二、 if xxx is None
该写法可将None和其他空值对象区分开来
如下代码输出所示:
if __name__ == '__main__': a = [] b = None print("a=[]") print("b=None") print("--- is None") if a is None: 开发者_JAVA print("None") else: print("a") if b is None: print("None") else: print("b")
输出
---output a,b---
a=[]b=None--- is NoneaNone
结论:
需要区分[],{},'',()等空值对象与None的区别时时可使用这种写法
贴下简单的测试代码
if __name__ == '__main__': print("---notwww.devze.com None == (not '') == (not 0) == (not []) == (not {}) == (not ()) == (not False)---") print(phpnot 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("Nonepython") 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") android else: print("None")
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。
精彩评论