为什么在Python中'=='在'in'之前出现?
为什么在Python中,'=='在'in'之前?
对于这个问题,之前的回答给出了有用的建议,即不要将布尔值与True进行比较,因为这是多余的。然而,这些回答实际上没有回答到根本问题:“为什么'3' in y == True的结果是False?”。
这个问题在juanpa.arrivillaga的评论中得到了解答:
也就是说,这是一个运算符链接的实例,因为'=='和'in'都被视为比较运算符。因此,这个表达式被解释为('3' in y) and (y == True)。
在Python中,比较运算符可以进行链接。例如,如果你想要检查a、b、c和d是否递增,你可以写成a < b < c < d,而不是a < b and b < c and c < d。同样地,你可以使用a == b == c == d来检查它们是否都相等。
Python文档中对链接比较进行了描述,链接比较的文档可以在这里找到:
比较可以任意地进行链接,例如x < y <= z等价于x < y and y <= z,只是当发现x < y为False时,y只被计算一次(但在两种情况下,当x < y为false时,z都不会被计算)。