我夏天的到来 发表于 2026-4-2 07:42:11

第13讲测试第5题答案疑问

主贴下面回复太多了,这里咨询下。

题目:5. x, y, z = 1, 2, 3 请问x, y, z是元组吗?

答案:所有的多对象的、逗号分隔的、没有明确用符号定义的这些集合默认的类型都是元组,自己在IDLE中键入以下代码,并体会一下:
>>> x, y, z = 1, 2, 3

>>> type(x)

>>> h = x, y, z

>>> type(h)

按照答案的描述应该说的是元组吧?但是,实际上我试了都是int啊。

除非是以下几种情况:
x,y=((1,2),(3,4)) x和y都是元组
x,y=[(1,2),(3,4)] x和y都是元组
x,y=(,) x和y都是list

FishC 发表于 2026-4-2 07:42:50

首先,对于题目“x, y, z = 1, 2, 3 请问x, y, z是元组吗?”的答案需要澄清。

在Python中,当使用逗号分隔多个值时,如果没有用括号明确界定,这些值会被视为一个元组。例如,1, 2, 3 本身就是一个元组。

但是,在赋值语句 x, y, z = 1, 2, 3 中,发生的是元组解包:

- 右侧 1, 2, 3 是一个元组。
- 左侧 x, y, z 是三个变量,它们分别被赋值为元组中的对应值。

因此,赋值后,x、y、z 各自是整数(int),而不是元组。

你可以通过以下代码验证:


>>> x, y, z = 1, 2, 3
>>> type(x)
<class 'int'>
>>> type(y)
<class 'int'>
>>> type(z)
<class 'int'>
>>> h = x, y, z# 这里 x, y, z 用逗号分隔,形成一个元组
>>> type(h)
<class 'tuple'>


所以,准确来说:

- x, y, z 作为三个独立的变量,它们不是元组。
- 但 x, y, z 用逗号分隔作为一个表达式时(如 h = x, y, z),它构成一个元组。

原答案的描述“所有的多对象的、逗号分隔的、没有明确用符号定义的这些集合默认的类型都是元组”指的是像 1, 2, 3 这样的表达式,而不是赋值后的变量。

希望这能解决你的疑问!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

空python 发表于 2026-4-2 08:29:53

问题问的清楚,解答解的清澈。完美

我夏天的到来 发表于 2026-4-2 08:37:41

哈哈,我自己试了,确实是这样。但是不能直接type(x,y,z),会报错。只能赋值给另一个标签,再去type这个标签,才能显示是tuple。
已经解决了,多谢AI小助理。

网络草包 发表于 昨天 15:25

x, y, z = 1, 2, 3
不是直接创建了x,y,z三个变量吗?
就等于是
x= 1
y= 2
z= 3
页: [1]
查看完整版本: 第13讲测试第5题答案疑问