>>> "f" in "foo"
True
>>> "f" in "foo" == True
False
我不明白为什么第二个表达式是假的。我看到==
的优先级高于in
。但是我希望得到一个异常,当我添加括号时会发生这种情况:
>>> "f" in ("foo" == True)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: argument of type 'bool' is not iterable
似乎只有当foo
位于==
的两侧时,表达式才是真的,如下所示:
>>> "f" in "foo" == "foo"
True
>>> "f" in "foo" == "bar"
False
我错过了什么?Python在这里实际计算的是什么
在Python中,比较运算符是链式的
这就是
1 < 2 < 3 < 4
工作并计算为True的原因见https://docs.python.org/3/reference/expressions.html#comparisons
in
和==
都是这样的操作符,所以通过这种机制意味着
相关问题 更多 >
编程相关推荐