【问题标题】:Question about operator precedence for in and !=关于 in 和 != 的运算符优先级的问题
【发布时间】:2022-11-16 13:25:59
【问题描述】:

在编写 Python 代码时,我得到了与我想要的不同的结果。

>>> temp = [1]
>>> 1 in temp != 2 in temp
False
>>> (1 in temp) != (2 in temp)
True
>>> ((1 in temp) != 2) in temp
True

我的目的是第二个,但我写的和第一个一样。

问题已经解决,但是我想知道第一个表达式输出False的顺序是什么。

不知是不是因为和第三个一样的原理,结果第三个也输出了True

【问题讨论】:

  • 为什么不搜索“python operator precedence”?
  • @Julien 我认为这是运算符链接,而不是运算符优先级。

标签: python


【解决方案1】:

我相信这是由运算符链接引起的。

在 Python 中,您可以编写一个包含两个(或更多)运算符的表达式,如下所示:

a < b < c

Python 将其视为您编写了(a &lt; b) and (b &lt; c)

所以 Python 正在处理你的表达

1 in temp != 2 in temp

就好像你写的:

(1 in temp) and (temp != 2) and (2 in temp)

这是错误的。

【讨论】:

    猜你喜欢
    • 2021-07-20
    • 2021-09-02
    • 1970-01-01
    • 2021-03-05
    • 1970-01-01
    • 2011-10-19
    相关资源
    最近更新 更多