令人困惑的比较输出



我对以下内容感到困惑:

>>> 1,2 == 1,2
(1, False, 2)

==操作员应仅返回一个布尔(或至少我是这样)。我本来希望有(True, True)假设该行将像a,b = 1,2一样处理,但是进行比较而不是分配。或者,有错误。但绝对不是(1, False, 2)

任何人都可以解释这里发生的事情吗?

this:

1,2 == 1,2 

分别评估为三个元素元组,分别包含12 == 12。您需要在这里使用几个括号:

(1, 2) == (1, 2)

这是语言参考中的:

除了列表或设置显示的一部分时,表达式列表 至少包含一个逗号会产生元组。元组的长度 是列表中的表达式数量。表达方式是 从左到右评估。

@alec_djinn

比较操作员工作如果两个操作数的值相等,则条件变为true。

您试图比较错误的数据类型1,2是无效的。

尝试'1,2'=='1,2'将为您提供正确的结果。

1,2不是一个参数。