Python 如果没有!=那么这个条件如何通过呢
无法理解,如果无不等于零,那么下面的if条件是如何通过的Python 如果没有!=那么这个条件如何通过呢,python,Python,无法理解,如果无不等于零,那么下面的if条件是如何通过的 >>> None == 0 False >>> if not None: ... print ("1") ... 1 >>> >>> None == False False >>> 请参阅Python文档中的章节 任何对象都可以测试真值,用于if或while条件,或作为下面布尔运算的操作数。以下值被认为是错误的: 没有 假的 任何数字类型
>>> None == 0
False
>>> if not None:
... print ("1")
...
1
>>>
>>> None == False
False
>>>
请参阅Python文档中的章节
任何对象都可以测试真值,用于if或while条件,或作为下面布尔运算的操作数。以下值被认为是错误的:
- 没有
- 假的
- 任何数字类型的零,例如0、0L、0.0、0j
- 任何空序列,例如,,(),[]
- 任何空映射,例如,{}
- 用户定义类的实例,如果类定义了非零()或len()方法,则该方法返回整数零或布尔值False
- 没有
- 假的
- 任何数字类型的零,例如0、0L、0.0、0j
- 任何空序列,例如,,(),[]
- 任何空映射,例如,{}
- 用户定义类的实例,如果类定义了非零()或len()方法,则该方法返回整数零或布尔值False
python中有许多东西在布尔上下文中使用时被认为是“错误的”(如if语句或布尔运算符,如
和,不是,或,等等)
具体而言,无、假、比较等于0
的任何数字数据类型,或实现\uuu len\uuu
且len(容器)==0
的任何类型
有关更多信息,请考虑:
>>> bool(False)
False
>>> bool(0)
False
>>> bool([])
False
>>> bool('')
False
>>> bool(None)
False
>>> not None
True
>>> not 0
True
>>> not False
True
>>> not ''
True
>>>
有关更多信息,请参见在python中,当在布尔上下文中使用时,有许多东西被认为是“错误的”(如if语句或布尔运算符,如和,不是,或,等等)
具体而言,无、假、比较等于0
的任何数字数据类型,或实现\uuu len\uuu
且len(容器)==0
的任何类型
有关更多信息,请考虑:
>>> bool(False)
False
>>> bool(0)
False
>>> bool([])
False
>>> bool('')
False
>>> bool(None)
False
>>> not None
True
>>> not 0
True
>>> not False
True
>>> not ''
True
>>>
有关更多信息,请参阅让我们询问python shell
In [1]: None == 0
Out[1]: False
In [2]: not None
Out[2]: True
In [3]: None?
Type: NoneType
String form: None
Namespace: Python builtin
Docstring: <no docstring>
有了这些信息,我们可以深入了解python的真相系统
以下值被认为是错误的:
没有
假的
任何数字类型的零,例如0、0L、0.0、0j
因此,是的,None
和0
对于if
/都被认为是错误的,而条件句则被认为是错误的,但这并不意味着所有计算为“false”的事物本身都是相等的。由于其中一些有不同的类型,它们并不等同
因此,底线是:
[1] 如果
/而
语句本身相等,则在中并非所有语句的计算结果都为False
[2] 原因是Python的类型系统让我们问问Python shell
In [1]: None == 0
Out[1]: False
In [2]: not None
Out[2]: True
In [3]: None?
Type: NoneType
String form: None
Namespace: Python builtin
Docstring: <no docstring>
>>> bool(None)
False
>>> bool(0)
False
>>> None == 0
False
>>> bool(None) == bool(0)
True
有了这些信息,我们可以深入了解python的真相系统
以下值被认为是错误的:
没有
假的
任何数字类型的零,例如0、0L、0.0、0j
因此,是的,None
和0
对于if
/都被认为是错误的,而条件句则被认为是错误的,但这并不意味着所有计算为“false”的事物本身都是相等的。由于其中一些有不同的类型,它们并不等同
因此,底线是:
[1] 如果
/而
语句本身相等,则在中并非所有语句的计算结果都为False
[2] 原因是Python的类型系统
>>> bool(None)
False
>>> bool(0)
False
>>> None == 0
False
>>> bool(None) == bool(0)
True
Python中的比较是类型安全的*,这意味着即使两个变量都是truthy(或非truthy),也不意味着它们的直接比较返回true
>>> type(None)
<class 'NoneType'>
>>> type(0)
<class 'int'>
>类型(无)
>>>类型(0)
*除了保证False==0
和True==1
之外,=
运算符是可重载的
Python中的比较是类型安全的*,这意味着即使两个变量都是truthy(或非truthy),也不意味着它们的直接比较返回true
>>> type(None)
<class 'NoneType'>
>>> type(0)
<class 'int'>
>类型(无)
>>>类型(0)
*除了保证False==0
和True==1
之外,=
运算符是可重载的。因为您使用了if not
?和None
始终为False。bool(0)==bool(None)
…比较值(与数字(或任何值))并将值转换为不同的类型(布尔值)是两个非常不同的操作。None
不是false,在问题中添加了一些代码,因为您使用了if not
?并且None
总是false。bool(0)==bool(None)
…比较值(与数字(或任何值))并将值转换为不同类型(布尔值)是两个非常不同的操作。None
不为false,在问题中添加更多的代码答案应该是自包含的。如果链接因任何原因中断