在Python
中,有一个特殊的表示,None
,它就是空。它是一个类型,也是一个对象。
从
值
上来说,None
都不等于空字符串,不等于空的列表,不等于0,不等于False
a = ''
b = False
c = []
d = 0
print(a == None)
print(b == None)
print(c == None)
print(d == None)
---------------------------------------
输出:
False
False
False
False
从
类型
上来说,它也不等于空字符串,不等于空的列表,不等于0,不等于False
a = ''
b = False
c = []
d = 0
print(a is None)
print(b is None)
print(c is None)
print(d is None)
print(type(None))
---------------------------------------
输出:
False
False
False
False
<class 'NoneType'>
判断一个变量是否为空,建议的做法是:
if a:
if not a:
而不要使用
if a is None:
。
def fun():
return None
a = fun()
if not a:
print('S')
else:
print('F')
if a is None:
print('S')
else:
print('F')
--------------------------------------------
输出:
S
S
虽然看起来两个打印的结果都相同,但是a = fun()
,改成a = ''
:
a = ''
if not a:
print('S')
else:
print('F')
if a is None:
print('S')
else:
print('F')
---------------------------------------
输出:
S
F