鱼C论坛

 找回密码
 立即注册
查看: 2231|回复: 10

[已解决]小白听python课求助

[复制链接]
发表于 2021-3-18 20:43:38 | 显示全部楼层 |阅读模式

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

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

x
听了课有两个问题,小白求助!

1.x,y,z=1,2,3 是不是等价于 x=1,y=2,z=3

2. 假设有 x = 1,y = 2,z = 3,请问如何快速将三个变量的值互相交换?(题目)
  
x, y, z = z, y, x(答案)

那我的理解是 答案只是将x和z的值互换了 但没有对y的值产生影响啊
最佳答案
2021-3-18 22:09:40
1 是的
2 原理如下:
X, Y, Z       Z, Y, X
|  |  |  -->  |  |  |
1, 2, 3       1  2  3
其实实现全部互换应该这样:x, y, z = z, x, y
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-3-18 20:51:49 From FishC Mobile | 显示全部楼层
所以y值也还是2呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-18 21:33:24 | 显示全部楼层
对呀,没错呀,可能老师的表达不对吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-18 21:40:34 | 显示全部楼层
鱼cpython学习者 发表于 2021-3-18 21:33
对呀,没错呀,可能老师的表达不对吧

老师的是对的
比如 123 点到 是 321
中间的数不变的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-18 22:09:40 | 显示全部楼层    本楼为最佳答案   
1 是的
2 原理如下:
X, Y, Z       Z, Y, X
|  |  |  -->  |  |  |
1, 2, 3       1  2  3
其实实现全部互换应该这样:x, y, z = z, x, y
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-18 23:11:29 | 显示全部楼层

最重要的是,一定要自己敲代码, 多换换变量、值来 试试
>>> x,y,z = 1,2,3
>>> print(x)
1
>>> print(y)
2
>>> print(z)
3
>>> a = 5
>>> b = 9
>>> c = 1
>>> id(a)
1753076240
>>> id(b)
1753076304
>>> id(c) #检查存储位置
1753076176
>>> a,b,c = c,a,b
>>> id(c) #检查存储位置
1753076304
>>> id(b)
1753076240
>>> id(a)
1753076176
>>> print(a,'is a',b,'is b' ,c,'is c')
1 is a 5 is b 9 is c
>>>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-19 07:29:37 | 显示全部楼层
Hela 发表于 2021-3-18 23:11
最重要的是,一定要自己敲代码, 多换换变量、值来 试试

谢谢 虽然没明白你后面id()是想要表达什么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-19 07:30:45 | 显示全部楼层
柿子饼同学 发表于 2021-3-18 22:09
1 是的
2 原理如下:其实实现全部互换应该这样:x, y, z = z, x, y

谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-19 07:31:46 | 显示全部楼层
鱼cpython学习者 发表于 2021-3-18 21:33
对呀,没错呀,可能老师的表达不对吧

OKK  谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-19 11:32:29 | 显示全部楼层
xuexiXX 发表于 2021-3-19 07:29
谢谢 虽然没明白你后面id()是想要表达什么

课程里小甲鱼多次提过,python里的变量可以看作一个标签,6楼代码里的id()是为了让你对比验证这句话。代码里的5,9,1在内存中存储的地址没有发生变化,当你改变X,Y,Z的时候,只是把三个变量标签重新贴了下位置。参看5楼的图示,就很清楚了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-20 08:56:10 | 显示全部楼层
atai0622 发表于 2021-3-19 11:32
课程里小甲鱼多次提过,python里的变量可以看作一个标签,6楼代码里的id()是为了让你对比验证这句话。代 ...

明白了,谢谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-16 08:13

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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