Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如果没有!=那么这个条件如何通过呢_Python - Fatal编程技术网

Python 如果没有!=那么这个条件如何通过呢

Python 如果没有!=那么这个条件如何通过呢,python,Python,无法理解,如果无不等于零,那么下面的if条件是如何通过的 >>> None == 0 False >>> if not None: ... print ("1") ... 1 >>> >>> None == False False >>> 请参阅Python文档中的章节 任何对象都可以测试真值,用于if或while条件,或作为下面布尔运算的操作数。以下值被认为是错误的: 没有 假的 任何数字类型

无法理解,如果无不等于零,那么下面的if条件是如何通过的

>>> None == 0
False
>>> if not None:
...   print ("1")
...
1
>>>
>>> None == False
False
>>>
请参阅Python文档中的章节

任何对象都可以测试真值,用于if或while条件,或作为下面布尔运算的操作数。以下值被认为是错误的:

  • 没有

  • 假的

  • 任何数字类型的零,例如0、0L、0.0、0j

  • 任何空序列,例如,,(),[]

  • 任何空映射,例如,{}

  • 用户定义类的实例,如果类定义了非零()或len()方法,则该方法返回整数零或布尔值False

所有其他值都被认为是真的-因此许多类型的对象总是真的

除非另有说明,否则具有布尔结果的操作和内置函数始终返回0或False表示False,返回1或True表示True。(重要例外:布尔运算或and始终返回其一个操作数。)

请参阅Python文档中的章节

任何对象都可以测试真值,用于if或while条件,或作为下面布尔运算的操作数。以下值被认为是错误的:

  • 没有

  • 假的

  • 任何数字类型的零,例如0、0L、0.0、0j

  • 任何空序列,例如,,(),[]

  • 任何空映射,例如,{}

  • 用户定义类的实例,如果类定义了非零()或len()方法,则该方法返回整数零或布尔值False

所有其他值都被认为是真的-因此许多类型的对象总是真的

除非另有说明,否则具有布尔结果的操作和内置函数始终返回0或False表示False,返回1或True表示True。(重要例外:布尔运算或and始终返回其一个操作数。)


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,在问题中添加更多的代码答案应该是自包含的。如果链接因任何原因中断