令人困惑的比较输出

问题描述 投票:0回答:2

我对以下内容感到困惑:

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

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

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

python python-3.x comparison-operators
2个回答
2
投票

这个:

1,2 == 1,2 

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

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

这在Language Reference中说明:

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


-1
投票

@alec_djinn

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

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

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

1,2不是单一的论点。

© www.soinside.com 2019 - 2024. All rights reserved.