python空值判断方式(ifxxx和ifxxxisNone的区别及说明)
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")
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程宝库。
PyQt5 事件处理机制PyQt为事件处理提供了两种机制:高级的信号与槽机制,以及低级的事件处理机制。信号与槽可以说是对事件处理机制的高级封装。常见事件类型:键盘事件:按键按下和松开。鼠标事件:鼠标 ...