鱼C论坛

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

[已解决]第013讲第5题

[复制链接]
发表于 2020-4-12 08:35:11 | 显示全部楼层 |阅读模式

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

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

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

>>> type(x)   #返回  <class 'int'>

>>> h = x, y, z

>>> type(h)  #返回  <class 'tuple'>



想请问一下,什么叫做没有明确用符号定义的,没有理解这道题的解释,那为什么,x , y , z 不是元组呢?
最佳答案
2020-4-12 09:28:24
本帖最后由 coolsummer2080 于 2020-4-12 09:30 编辑
  1. >>> h = (1, 2, 3)
  2. >>> type(h)
  3. <class 'tuple'>
复制代码

类似以上的赋值 ,赋值号右边已经明确说明是元组。而以下就没有明确说明,但Python将其解释成元组。
  1. >>> h = 1, 2, 3
  2. >>> type(h)
  3. <class 'tuple'>
复制代码

也就是赋值后右边是一个元组,如果左边是一个变量,将元组赋给变量,这好理解 。
如果右左边是多个变量,这牵涉到序列解包的概念,也就是右边是一个含有多个值的包(如元组),将这个包解开,将其每个元素按顺序赋值给在边的多个变量。如下:
  1. x, y, z = 1, 2, 3
复制代码

实际上赋值号右边是一个元组,解包到x, y, z上。
如果我回答的对,给个最佳答案呗!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-12 08:45:39 | 显示全部楼层
x,y,z是分别赋值,等同于:
  1. x = 1
  2. y = 2
  3. z = 3
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-12 09:06:32 | 显示全部楼层
本帖最后由 liuzhengyuan 于 2020-4-12 10:12 编辑
  1. x, y, z = 1, 2, 3
复制代码

这个是每个赋值 ,等于
  1. x = 1
  2. y = 2
  3. z = 3
复制代码


这个是元组
  1. h = x, y, z
复制代码


等式两边都是元组,就是分别赋值
如果 左边是 单个变量,右边是元组,就是元组赋值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-12 09:28:24 | 显示全部楼层    本楼为最佳答案   
本帖最后由 coolsummer2080 于 2020-4-12 09:30 编辑
  1. >>> h = (1, 2, 3)
  2. >>> type(h)
  3. <class 'tuple'>
复制代码

类似以上的赋值 ,赋值号右边已经明确说明是元组。而以下就没有明确说明,但Python将其解释成元组。
  1. >>> h = 1, 2, 3
  2. >>> type(h)
  3. <class 'tuple'>
复制代码

也就是赋值后右边是一个元组,如果左边是一个变量,将元组赋给变量,这好理解 。
如果右左边是多个变量,这牵涉到序列解包的概念,也就是右边是一个含有多个值的包(如元组),将这个包解开,将其每个元素按顺序赋值给在边的多个变量。如下:
  1. x, y, z = 1, 2, 3
复制代码

实际上赋值号右边是一个元组,解包到x, y, z上。
如果我回答的对,给个最佳答案呗!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-13 07:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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