1.python 中的空值
我们在开发过程中经常会遇到判断一个对象是否是空值的情况,以便于对于空值情况做一些特殊的处理或者异常判断
那么,python 中的空值是如何定义的?
针对我们常见的 python 类型,如数值型,布尔型,字符类型,列表,字典以及元组等,我们通常会显式的判断,比如:
int_a = 0
float_b = 0.0
bool_c = False
list_d = []
dict_e = {}
tuple_f = ()
string_g = ''
if int_a == 0:
print('int empty')
if float_b == 0.00:
print('float empty')
if bool_c == False:
print('bool empty')
if string_g == '':
print('string empty')
if len(list_d) == 0:
print('list empty')
if len(dict_e) == 0:
print('dict empty')
if len(tuple_f) == 0:
print('tuple empty')
# int empty
# float empty
# bool empty
# string empty
# list empty
# dict empty
# tuple empty
复制代码
其实,在 python 中下列值都认为是空值
None
False
任何形式的数值类型零
空的序列,如'', 列表,元组
空的字典
所以判断空值不必要显式,可以有更简便的方式:
if not int_a:
print('int empty')
if not float_b:
print('float empty')
if not bool_c:
print('bool empty')
if not string_g:
print('string empty')
if not list_d:
print('list empty')
if not dict_e:
print('dict empty')
if not tuple_f:
print('tuple empty')
# int empty
# float empty
# bool empty
# string empty
# list empty
# dict empty
# tuple empty
复制代码
2.特殊的空值 None
None 是一个特殊的空值, None 是不等于任何其他类型值,None 有自己类型 NoneTypeNone 判断是通过 is 关键字来判断
如果在 if 判断语句时,None 是等同于 False。
a = None
b = None
print(a == b)
print(a == '')
print(type(None))
if a is None:
print('a is empty')
if not a:
print('a is empty')
# True
# False
# <class 'NoneType'>
# a is empty
# a is empty
复制代码
使用 None 需要特别的注意,除非是显式的赋值 None,否则任何值都不等于 None
list_d = []
print(list_d == None)
print(list_d is None)
print(list_d is not None)
# False
# False
# True
复制代码
所以从另一个角度看,None 不代表其他的空值。
评论