【问题标题】:Precedence of `in` and `==` in Python [duplicate]Python中`in`和`==`的优先级[重复]
【发布时间】:2020-03-28 12:13:21
【问题描述】:

假设我有以下代码行:

print("valley" in "hillside" == False)

由于in== 在Python 中的优先级是等价的,我希望这些操作从左到右执行,产生True 作为输出。

然而,实际上,当我运行这行代码时,我得到了False

我注意到在"valley" in "hillside" 周围添加括号会导致True 作为输出,但我似乎不明白为什么首先需要它...

【问题讨论】:

  • 并非如此。根据文档,==in 具有相同的优先级。
  • 是的,但是文档也非常详细地描述了链接。

标签: python python-3.x operators operator-precedence


【解决方案1】:

in== 都是比较运算符,因此解析器会处理

print("valley" in "hillside" == False)

print("valley" in "hillside" and "hillside" == False)

有关更多详细信息,请参阅 Python 语言参考中有关 Comparisons 的部分,特别是此注释:

比较可以任意链接,例如,x

【讨论】:

  • 有道理-谢谢!
猜你喜欢
  • 2021-09-02
  • 2017-11-16
  • 1970-01-01
  • 1970-01-01
  • 2013-03-16
  • 1970-01-01
相关资源
最近更新 更多