Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.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_Boolean_Comparison_Boolean Logic_Operands - Fatal编程技术网

Python 巨蟒!=产生意想不到的结果

Python 巨蟒!=产生意想不到的结果,python,boolean,comparison,boolean-logic,operands,Python,Boolean,Comparison,Boolean Logic,Operands,我在一个关于快速学习Python的网站上遇到了一个非常令人困惑的问题。这是关于操作数的以及它是如何工作的。使用的结果/结果!=3个操作数之间的差异让我和我的同学感到困惑。我们已尝试四处搜索,但找不到有关此问题的任何讨论/解释。请帮忙。 具体请参见下文: 真的错!=一, 输出:真 真的错!=真的 输出:真 真的不是假的不是真的 输出:真 一步一步地分解第一句话,没错=应首先计算False以生成True。然后使用!=再一次。真的我应该给出一个错误的答案。因此,整个语句的计算结果应该为False!但事

我在一个关于快速学习Python的网站上遇到了一个非常令人困惑的问题。这是关于操作数的以及它是如何工作的。使用的结果/结果!=3个操作数之间的差异让我和我的同学感到困惑。我们已尝试四处搜索,但找不到有关此问题的任何讨论/解释。请帮忙。 具体请参见下文:

真的错!=一,

输出:真

真的错!=真的

输出:真

真的不是假的不是真的

输出:真

一步一步地分解第一句话,没错=应首先计算False以生成True。然后使用!=再一次。真的我应该给出一个错误的答案。因此,整个语句的计算结果应该为False!但事实上,一个真实的世界产生了

一步一步地分解第二句话,没错=假的应该是真的,那么这个是真的!=真应该产生假。该语句的计算结果应为False!但事实上,一个真实的世界产生了

第三项声明也是如此

在Javascript和JAVA中尝试完全相同的语句都会得到预期的结果-False,这是完全有意义的。然而,Python是个例外

注意:我们知道,通过在两个操作数周围加上括号来显式强制执行操作顺序会得到“正确”的结果(这是错误的)。我们只是不理解为什么没有括号时会出现这种情况


任何帮助都将不胜感激。

这是因为b!=c相当于a!=b和b!=c

这称为链式比较,您可以在此处找到更多信息:

您正在链接比较运算符<代码>正确!=错!=1执行为
(True!=False)和(False!=1)
True!=错!=True
作为
(True!=False)和(False!=True)
等执行。为什么
True!=1
yield false?换句话说,您的细分是不正确的。链式比较不是这样工作的。@AdamHughes:
True==1
是真的,所以
True!=1
确实是错误的。所以一个更好的问题是:为什么你认为它不应该呢?戴普,谢谢你一定需要一杯咖啡我知道了,非常感谢!!