深入理解python中的None

在python中判断一个对象是否为空时,我曾经这样写代码:

list=[]
if list is not None:
    print "list is %s"  %list
else:
    print "list is NULL"

打印结果为:

list is []

从上面的例子可以看出list为空应该打印的是:list is NULL ,但是实际的结果不是,这是为什么呢?
首先,我们来学习一下python中那些形式的数据为空。

  1. 常量None
  2. 常量False
  3. 空的字典,列表,set,tuple。
  4. 数值为0,0L,0.0

    测试代码:


1.常量False
list=[]
if False:
    print "list is %s"  %list
else:
    print "list is NULL"

 2. 空的字典,列表,set,tuple。
list=[]
if list:
    print "list is %s"  %list
else:
    print "list is NULL"
 3.常量None
list=[]
if None:
    print "list is %s"  %list
else:
    print "list is NULL"
 4. 数值为00L,0.0

list=[]
if 0:
    print "list is %s"  %list
else:
    print "list is NULL"

打印结果均为:list is NULL
所以在这里可以看出python中的None常量的特殊性:
它既不是0,也不是False,也不是空字符串。它只是一个空值的对象,也就是一个空的对象,只是没有赋值而已。
所以正确判断一个对象是否为空就应该采用这样的格式:

list=[]
if list:
    print "list is %s"  %list
else:
    print "list is NULL" 

那怎么去判断一个字符串为空呢?

 1. str==“ ”
 2. len(str)==0
 3. if str:(不为空的时候)
      do something when str is not null
    else:
      do something when str is null

测试:

str=""
if str:
    print "hello world"
else:
    print "I love python"

测试结果为:I love python

在这里推荐一本书《编写高质量代码改善python程序的91个建议》张颖和赖勇浩主编的,还是不错的一本书,当然,我们之间也没有**交易,只是觉得不错,推荐给大家学习。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值