在 Python 中,没有null关键字,但有None。None是函数的返回值,"不 返回任何东西"。None经常被用来表示没有一个值,因为默认参数没有传递给函数。你不能给变量分配一个null值;如果你这样做,是非法的,会引发一个SyntaxError。
data = null
print(data)
输出
Traceback (most recent call last):
File "/Users/krunal/Desktop/code/pyt/database/app.py", line 1, in <module>
data = null
NameError: name 'null' is not defined
Python中None的关键点
- 将None与任何东西进行比较,除了None本身之外,总是返回False。
- None不是一个0。
- None不是一个空字符串。
- None不等同于False。
Python中的NoneType
NoneType是Python中None 对象的一个类型。 None 关键字是一个对象,是NoneType类的一个数据类型。我们可以将None赋值给任何变量,但我们不能创建其他NoneType 对象。NoneType只是None单体的类型。
print(type(None))
输出
<class 'NoneType'>
要检查Python中的变量数据类型,可以使用type()方法。
如果re.search中的Python正则表达式不匹配,它将返回NoneType对象。
检查一个变量是否为 None
要检查一个变量是否为 None,可以使用 Python 中的is 操作符 。使用 is 操作符,如果对象的类型是 NoneType,则使用语法 object is None 来返回 True,否则返回False。
data = None
if data is None:
print("It is in fact a None")
else:
print("No, it is Not None")
输出
It is in fact a None
你可以看到is运算符返回True,因为数据是None,因此if条件返回True并执行其主体,这将打印出 "事实上它是一个None"。
比较None与False类型
你可以比较None和False的值,但它返回False,因为False和None不是同一个值。
data = None
print(data == False)
输出
False
None关键字也被用于匹配或识别一个特定的函数是否返回任何值。
TypeError: 'NoneType' 对象不是可迭代的
要使一个对象在 Python 中可迭代 ,它必须包括一个值。一个None值不是可迭代的,因为它不包含任何值或对象。这是因为 None在 Python 中代表空值。
None对象和空的 可迭代对象之间是有区别的。NoneType "对象不是一个可迭代的错误,如果你有任何空的列表或字符串,它就不会产生。
从技术上讲,你可以通过在迭代一个值之前使用is操作符或==操作符检查该值是否等于None来防止NoneType 异常。
为了解决NoneType错误,确保你试图迭代的任何值都应该被分配一个可迭代的对象,如字符串或列表。