【发布时间】:2019-04-24 01:46:52
【问题描述】:
以下代码输出 False,根据 Python 操作顺序,它应该输出 True(顺序应该是 -> ==,而不是相反)。为什么 == 先进来?
y = "33"
"3" in y == True
输出
False
【问题讨论】:
-
in和==运算符具有相同的优先级。所以我相信他们是从左到右评估的。为什么不使用()以便在代码中清楚您想要什么?("3" in "33") == True -
另外,这是运算符链接的一个实例,因为
==和in都算作比较运算符。所以这被评估为('3' in y) and (y == True) -
另外,您永远不需要比较 True 或 False。如果括号正确,您的陈述将意味着 True == True 或 False == True
-
另外,为什么不直接写
3 in y呢?无需对照 bool 检查 bool 结果。你可以阅读operator chaining here
标签: python