当前位置:   article > 正文

深入理解python中的None_python get(none)

python get(none)

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

list=[]
if list is not None:
    print "list is %s"  %list
else:
    print "list is NULL"
  • 1
  • 2
  • 3
  • 4
  • 5

打印结果为:

list is []
  • 1

从上面的例子可以看出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"
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

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

list=[]
if list:
    print "list is %s"  %list
else:
    print "list is NULL" 
  • 1
  • 2
  • 3
  • 4
  • 5

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

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

测试:

str=""
if str:
    print "hello world"
else:
    print "I love python"
  • 1
  • 2
  • 3
  • 4
  • 5

测试结果为:I love python

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/658113
推荐阅读
相关标签
  

闽ICP备14008679号