Python!=给出意想不到的结果

时间:2017-06-27 14:08:01

标签: python boolean comparison boolean-logic operands

我在网站上遇到了一个非常令人困惑的问题,用于快速学习Python。它涉及操作数!=以及它是如何工作的。在3个操作数之间使用!=的结果/结果让我和我的同学感到困惑。我们试图搜索一下,无法就此找到任何讨论/解释。请帮忙。 具体来说,请看以下内容:

  

真!=假!= 1

输出:True

  

True!= False!= True

输出:True

  

True不是False不是真的

输出:True

逐步分解第一个语句,应首先评估True!= False以产生True。然后使用!=将此True与1进行比较。真!= 1应该产生一个假。因此整个语句应该评估为False!但相反,会生成一个True。

逐步分解第二个语句,True!= False应该产生True,然后这个True!= True应该产生一个False。该语句应该评估为False!但是生成了True。

同样适用于第三种陈述。

在Javascript和JAVA中尝试完全相同的语句都给出了预期的结果 - False,这是完全合理的。然而,Python是个例外。

注意:我们知道通过在两个操作数周围放置括号来明确强制操作的顺序会给出" right"结果(这是假的)。我们无法理解为什么它没有括号的方式。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

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

它被称为链式比较,您可以在这里找到更多信息: https://docs.python.org/3/reference/expressions.html

相关问题