为什么在python中进行2个比较需要3个输出?

rns*_*nso 2 python comparison

我正在尝试以下代码:

In [16]: a,b = 1,2
Run Code Online (Sandbox Code Playgroud)

上面按预期方式将1分配给a,将2分配给b,并且没有错误消息:

In [18]: a
Out[18]: 1

In [19]: b
Out[19]: 2
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试将它们进行比较:

In [17]: a,b == 1,2
Out[17]: (1, False, 2)
Run Code Online (Sandbox Code Playgroud)

我得到3个输出。问题出在哪里,或者这三个输出是什么意思?

the*_*eye 5

这里没有问题。像这样评价

(a, (b == 1), 2)
Run Code Online (Sandbox Code Playgroud)

三个值的元组。

在Python中,如果元组具有多个元素,则不必在圆括号中添加该元组。因此,按照Python语法,这被视为元组。这记录在这里

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

...

仅需使用尾部逗号才能创建单个元组(也称为单例);在所有其他情况下,它都是可选的。没有尾随逗号的单个表达式不会创建元组,而是会产生该表达式的值。(要创建一个空的元组,请使用一对空的括号:()。)


要实现您想要的目标,您需要这样做

(a, b) == (1, 2)
Run Code Online (Sandbox Code Playgroud)