下面的代码输出 False,而根据 Python 操作顺序,它应该输出 True(顺序应该是 -> ==,而不是相反)。为什么 == 出现在 in 之前?
y = "33"
"3" in y == True
Output
False
现有的答案提供了有用的建议,您不应该将布尔值与True
因为它是多余的。然而,没有一个答案真正回答了根本问题:“为什么"3" in y == True
评估为False
?".
juanpa.arrivilillaga 在评论中回答了这个问题:
另外,这是一个实例操作符链接, since ==
and in
两者都算作比较运算符。所以这被评估为('3' in y) and (y == True)
在Python中,比较运算符可以是chained。例如,如果您想检查a
, b
, c
, and d
正在增加,你可以写a < b < c < d
代替a < b and b < c and c < d
。同样,您可以检查它们是否都等于a == b == c == d
.
Python 文档中描述了链式比较here https://docs.python.org/3/reference/expressions.html#comparisons:
比较可以任意链接,例如,x < y <= z
相当于x < y and y <= z
, 除了那个y
仅评估一次(但在两种情况下z
当x < y
发现是假的)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)