有人能解释为什么True,True==(True,True)的输出是(True,False)吗



我试图像下面的代码一样用Python进行比较,但却被产生的输出弄糊涂了。

有人能解释为什么输出是这样的吗?

>>> True, True == True, True
(True, True, True)
>>> True, True == (True, True)
(True, False)

因为运算符的优先级。==的优先级高于,,因此第一个表达式被视为编写了

True, (True == True), True

您的第二个表达式被视为

True, (True == (True, True))

如果你想比较==元素的两侧,你需要在两边加括号:

(True, True) == (True, True)

这将返回True

请注意,逗号并不是严格意义上的运算符,所以为了理解这种行为,它已经足够接近了。

最新更新