== 的逻辑是什么,相比之下?



所以我正在寻找问题并遇到了这个最近的问题

它的答案非常简单,但我注意到的一件事是它实际上确实返回了完全匹配的SPAM

所以这段代码

text = 'buy now'
print(text == 'buy now' in text)  # True

返回True,我不明白为什么

我试图通过在不同的地方放置括号来弄清楚,然后

text = 'buy now'
print(text == ('buy now' in text))  # False

返回False

text = 'buy now'
print((text == 'buy now') in text) # TypeError

提高TypeError: 'in <string>' requires string as left operand, not bool

我的问题是这里发生了什么,为什么会这样?

附言

我在 Ubuntu 20.04 上运行 Python 3.8.10

==in都被视为比较运算符,因此表达式text == 'buy now' in text受比较链接的影响,使其等效

text == 'buy now' and 'buy now' in text

两者都是andTrue的操作数,因此结果True

添加括号时,您要么检查是text == True(False)还是True in text(这是一个TypeError;str.__contains__不接受布尔参数)。

相关内容

  • 没有找到相关文章

最新更新