开发者

python空值判断方式(if xxx和if xxx is None的区别及说明)

目录
  • 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 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:
开发者_JAVA    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("---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")

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新开发

开发排行榜