令人困惑的比较输出

时间:2017-12-07 12:09:24

标签: python python-3.x comparison-operators

我对以下内容感到困惑:

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

==运算符应该只返回一个bool(或者至少我是这么认为的)。 我原本希望(True, True)假设该行已经像a,b = 1,2一样处理,但执行比较而不是赋值。或者,有一个错误。但绝对不是(1, False, 2)

有谁能解释这里发生了什么?

2 个答案:

答案 0 :(得分:2)

此:

1,2 == 1,2 

被评估为包含12 == 12的三元素元组。你需要在这里使用几个括号:

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

这在Language Reference

中说明
  

除非列表或集合的一部分显示,否则表达式列表   包含至少一个逗号会产生一个元组。元组的长度   是列表中的表达式数。表达式是   从左到右进行评估。

答案 1 :(得分:-1)

@alec_djinn

比较运算符工作如果两个操作数的值相等,则条件成立。

您正在尝试比较错误的数据类型1,2无效。

尝试1,2' ==' 1,2'会给你正确的结果。

1,2不是单一论点。