【问题标题】:True not equal to negative<0真不等于负<0
【发布时间】:2021-04-01 14:22:11
【问题描述】:

我觉得我在这里遗漏了一些简单的东西,但是谷歌搜索会带来很多通用结果:

将 True 与 x

>>>True!=-1<0
True
>>> True!=(-1<0)
False
>>> (True!=-1)<0
False

这是怎么回事?

【问题讨论】:

    标签: python logic comparison-operators


    【解决方案1】:

    我认为它是分别评估这两个条件,而不是对它们进行分组。

    以下内容:

    >>> -1 != 0 < 1
    True
    

    将其评估为(-1 != 0) AND (0 &lt; 1)

    用你的例子:

    True != -1 => this is True
    -1 < 0 => this is True
    

    所以 2 True 的组合为 True。

    【讨论】:

      【解决方案2】:

      从这个答案 (https://stackoverflow.com/a/7479836/5666087) 推断,我相信答案归结为运算符的链接。 !=&lt; 具有相同的优先级,因此从左到右计算它们。但是由于链接,这似乎正在发生:

      >>> (True != -1) and (-1 < 0)
      True
      

      将此与OP的原始代码进行比较:

      >>> True != -1 < 0
      True
      

      我在上面发布的 StackOverflow 答案的作者包括这个例子来解释链接:

      0 < a < 1
      

      评估为

      (0 < a) and (a < 1)
      

      【讨论】:

        猜你喜欢
        • 2011-03-09
        • 2017-06-06
        • 1970-01-01
        • 1970-01-01
        • 2017-03-21
        • 2012-12-05
        • 1970-01-01
        • 2019-12-23
        • 1970-01-01
        相关资源
        最近更新 更多