赞
踩
在python中判断一个对象是否为空时,我曾经这样写代码:
list=[]
if list is not None:
print "list is %s" %list
else:
print "list is NULL"
打印结果为:
list is []
从上面的例子可以看出list为空应该打印的是:list is NULL ,但是实际的结果不是,这是为什么呢?
首先,我们来学习一下python中那些形式的数据为空。
数值为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. 数值为0,0L,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个建议》张颖和赖勇浩主编的,还是不错的一本书,当然,我们之间也没有**交易,只是觉得不错,推荐给大家学习。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。