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

 更新时间:2022年11月30日 10:23:27   作者: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")

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

相关文章

  • Python Pandas教程之series 上的转换操作

    Python Pandas教程之series 上的转换操作

    这篇文章主要介绍了Python Pandas教程之series上的转换操作,文章通过围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-09-09
  • Django博客系统注册之创建用户模块应用

    Django博客系统注册之创建用户模块应用

    本文主要介绍了Django博客系统注册之创建用户模块应用,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • python实现RabbitMQ的消息队列的示例代码

    python实现RabbitMQ的消息队列的示例代码

    这篇文章主要介绍了python实现RabbitMQ的消息队列的示例代码,总结了RabbitMQ中三种exchange模式的实现,分别是fanout, direct和topic。感兴趣的小伙伴们可以参考一下
    2018-11-11
  • Pandas数据连接pd.concat的实现

    Pandas数据连接pd.concat的实现

    本文主要介绍了Pandas数据连接pd.concat的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • Python 如何限制输出日志的大小

    Python 如何限制输出日志的大小

    这篇文章主要介绍了Python 限制输出日志的大小方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • Python3监控疫情的完整代码

    Python3监控疫情的完整代码

    这篇文章主要介绍了Python3监控疫情的完整代码,代码简单易懂,非常不错具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02
  • Pandas多列值合并成一列的实现

    Pandas多列值合并成一列的实现

    本文主要介绍了Pandas多列值合并成一列的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • Tensorflow中使用cpu和gpu有什么区别

    Tensorflow中使用cpu和gpu有什么区别

    这篇文章主要介绍了Tensorflow中使用cpu和gpu有什么区别,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • Python字典中的键映射多个值的方法(列表或者集合)

    Python字典中的键映射多个值的方法(列表或者集合)

    今天小编就为大家分享一篇Python字典中的键映射多个值的方法(列表或者集合),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10
  • Python中的并发编程asyncio库入门使用

    Python中的并发编程asyncio库入门使用

    这篇文章主要为大家介绍了Python中的并发编程asyncio库入门的使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-05-05

最新评论