python空值判断总结(if xxx 和if xxx is None的区别)

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")
  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值