鱼C论坛

 找回密码
 立即注册
查看: 39|回复: 3

[学习笔记] 第13讲测试第5题答案疑问

[复制链接]
发表于 6 小时前 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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

题目: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=([1,2],[3,4]) x和y都是list
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 6 小时前 | 显示全部楼层
首先,对于题目“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 是三个变量,它们分别被赋值为元组中的对应值。

因此,赋值后,xyz 各自是整数(int),而不是元组。

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


  1. >>> x, y, z = 1, 2, 3
  2. >>> type(x)
  3. <class 'int'>
  4. >>> type(y)
  5. <class 'int'>
  6. >>> type(z)
  7. <class 'int'>
  8. >>> h = x, y, z  # 这里 x, y, z 用逗号分隔,形成一个元组
  9. >>> type(h)
  10. <class 'tuple'>
复制代码


所以,准确来说:

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

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

希望这能解决你的疑问!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 6 小时前 | 显示全部楼层
问题问的清楚,解答解的清澈。完美
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 5 小时前 | 显示全部楼层
哈哈,我自己试了,确实是这样。但是不能直接type(x,y,z),会报错。只能赋值给另一个标签,再去type这个标签,才能显示是tuple。
已经解决了,多谢AI小助理。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-4-2 14:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表