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

作者:Urmsone 时间:2022-04-01 20:18:42 

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")

来源:https://blog.csdn.net/Urms_handsomeyu/article/details/103350227

标签:python,空值,判断
0
投稿

猜你喜欢

  • MySQL 数据类型和建库策略

    2024-01-20 12:32:40
  • 语义化你的HTML标签和属性

    2008-06-12 13:18:00
  • 怎么样用xmlhttp读取远程xml的数据

    2008-10-11 13:52:00
  • 基于Python实现通过微信搜索功能查看谁把你删除了

    2022-07-10 00:19:37
  • php多任务程序实例解析

    2023-11-18 00:22:09
  • Django 删除upload_to文件的步骤

    2022-03-23 05:47:14
  • Django实现在线无水印抖音视频下载(附源码及地址)

    2021-07-09 11:24:43
  • linux CentOS 7.4下 mysql5.7.20 密码改回来的处理方法

    2024-01-25 17:36:56
  • django的model操作汇整详解

    2022-05-16 03:59:46
  • asp.net mvc4 mysql制作简单分页组件(部分视图)

    2024-01-27 17:56:36
  • Python实现RSA加密解密

    2022-04-22 19:07:41
  • Python使用淘宝API查询IP归属地功能分享

    2021-02-11 20:37:29
  • Python之两种模式的生产者消费者模型详解

    2021-07-31 17:44:02
  • vue中英文切换实例代码

    2024-05-29 22:29:37
  • 深入理解Vue的数据响应式

    2024-05-09 09:39:15
  • SQL-ORDER BY 多字段排序(升序、降序)

    2024-01-28 05:25:55
  • js+CSS实现弹出居中背景半透明div层的方法

    2024-04-18 10:52:51
  • Python 学习教程之networkx

    2023-10-11 01:49:07
  • pyqt5蒙版遮罩mask,setmask的使用

    2022-04-05 21:00:58
  • asp检测是否为中文字符函数

    2011-04-07 11:19:00
  • asp之家 网络编程 m.aspxhome.com