为什么它会这样工作,因为值None通过和等等价工作,并且null变量a中没有值。
按照思路,应该可以解决True。该值None没有或等于0or False,但由于某种原因,当将此类数据输入变量时,它a返回False无法解释为什么会发生这种情况。
>>> a = ""
>>> a == None
False
>>> a = "0"
>>> a == None
False
>>> a = 0
>>> a == None
False
>>>
为什么它会这样工作,因为值None通过和等等价工作,并且null变量a中没有值。
按照思路,应该可以解决True。该值None没有或等于0or False,但由于某种原因,当将此类数据输入变量时,它a返回False无法解释为什么会发生这种情况。
>>> a = ""
>>> a == None
False
>>> a = "0"
>>> a == None
False
>>> a = 0
>>> a == None
False
>>>
在第一种情况下,变量
a包含一个空字符串。在第二行用零符号。第三个数字是 0。在所有三种情况下,变量中都有一些东西。a你有这个名字。使用=运算符,您可以将此名称附加到不同的对象(空字符串''、带符号的字符串'0'(U+0030)、整数0- 对象由源代码中的相应常量创建)。字符串是 Python 中 str 类型的对象。整数是 int 类型的对象。a == None将这些对象与 None 对象进行比较。str 或 int 类型的任何对象都不能等于 None。顺便说一句,None 也是 Python 中的一个对象(类型为 NoneType)。它存在于程序中的单个实例中,因此您应该使用is运算符进行比较:(a is None表示是否相同的对象。目的是==比较对象的值)。您可能想知道 Python 的“真实性”概念(布尔上下文中的值),实际上空字符串(以及其他空容器)和 0 整数在 Python 中都是 Falsey:
请参阅真值测试。
请注意,
'0'它是一个非空字符串,因此bool('0') is True. Python 是一种强类型语言。字符串不会隐式转换为数字或 None 对象。名称本身,例如a可以在不同时间引用任何对象。但是名称必须引用某个对象,否则你NameError会得到。