以下代码输出False,而根据Python运算顺序,它应该输出True(顺序应为in -> ==,而不是反过来)。为什么==在in之前?
y = "33"
"3" in y == True
输出
False
y = "33"
"3" in y == True
输出
False
True
进行比较,因为它是多余的。但是,没有一个回答实际回答根本问题:“为什么"3" in y == True
的结果为False
? ”。==
和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
来检查它们是否全部相等。x < y <= z
等价于x < y and y <= z
,只是在后一种情况下仅评估y
一次(但在x < y
为false时,两种情况下都不评估z
)。 ”in
返回一个bool
值,不需要额外与第二个bool
值进行比较。但是,您可以这样对表达式进行分组...
y = "33"
("3" in y) == True
y
中的"3" == True
的表达式结果为False
?"这个问题。 - k_ssb
(“3”在“33”中)== True
- Netwave==
和in
都被视为比较运算符。因此,它被计算为('3' in y) and (y == True)
。 - juanpa.arrivillaga3 in y
呢?没有必要将布尔结果与布尔值进行比较。您可以在此处阅读有关操作符链接的信息。 - Maor Refaeli