鱼C论坛

 找回密码
 立即注册
查看: 5850|回复: 19

假设有 x = 1,y = 2,z = 3,请问如何快速将三个变量的值互相交换,没看懂

[复制链接]
发表于 2020-4-29 16:55:27 | 显示全部楼层 |阅读模式

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

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

x
假设有 x = 1,y = 2,z = 3,请问如何快速将三个变量的值互相交换

x, y, z = z, y, x

这个有大佬给新手通俗的解释一下吗,脑袋不太够用。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-4-29 17:32:33 | 显示全部楼层

意思是记住就行,不用理解么。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-29 17:35:52 | 显示全部楼层
zltzlt 发表于 2020-4-29 17:23
这是 Python 独有的特性,相当于同时执行以下三条语句:

不太明白,x=1,y=2,z=3,相当于x=z,y=y, z=x,是吧,
那为什么不能,x=x,y=z,z=y呢。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-29 18:16:42 | 显示全部楼层
zltzlt 发表于 2020-4-29 17:36
因为当 z = y 时 y 的值已经被改变了,此时 y 的值是原来的 z

那要这么理解的话,x , y , z = z , y , x,可以理解为,x = z,y = y,z = x,那当z = x的时候,x 的值也已经被改变了啊,此时x 的值就是原来的 z 呀,不是一个意思吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-29 18:20:29 | 显示全部楼层
heidern0612 发表于 2020-4-29 17:55
这种多重赋值的,可以用个临时的变量来解释。

你可以这么理解

那我可以把temp1 = y,temp2 = z,temp3 = x,吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-29 18:30:21 | 显示全部楼层
heidern0612 发表于 2020-4-29 18:26
可以啊。

那就x,y,z= y,z,x,原理一样的。

那就是问题的答案并不一定是x,y,z = z,y,x了,也可以是x,y,z = x,z,y,也可以是x,y,z = y,x,z,是不?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-29 18:42:58 | 显示全部楼层
qiuyouzhi 发表于 2020-4-29 16:58
拆开来看:

但这样是不对的,在最后,z = x的时候,x已经不是原来那个x了

大佬我明白了, 要想交换这三个值其实可以随意写,比如 x,y,z = z,x,y ; x,y,z = y,z,x ,但是不能拆分开来写,我自己在IDLE上写了几次,终于明白了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-4 02:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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