鱼C论坛

 找回密码
 立即注册
查看: 2725|回复: 7

[已解决]新手求教:数字互换问题

[复制链接]
发表于 2017-5-17 09:35:25 | 显示全部楼层 |阅读模式

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

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

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

这么做只是x和z互换啊!
是不是还需要进一步操作?
最佳答案
2025-2-2 20:51:07
方法一:元组解包(python常用)
x = 1
y = 2
z = 3
# 交换变量的值
x, y, z = z, x, y
print(f"x = {x}, y = {y}, z = {z}")
首先定义了三个变量 x、y、z 并分别赋值。然后使用元组解包的方式,将 z 的值赋给 x,x 的值赋给 y,y 的值赋给 z。最后打印出交换后的变量值。

方法二:中间变量的引入(c常用,但语言稍有不同)
x = 1
y = 2
z = 3
# 借助中间变量交换
temp = x
x = z
z = y
y = temp
print(f"x = {x}, y = {y}, z = {z}")
这里首先把 x 的值保存到临时变量 temp 中,然后将 z 的值赋给 x,再把 y 的值赋给 z,最后把临时变量 temp(也就是原来 x 的值)赋给 y,从而实现三个变量值的交换。

两种方法都行,但元组解包更简洁,并且也是python的一个特色和特点。看你清楚了没,多多点赞和设置最佳哦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-5-17 09:39:45 | 显示全部楼层
x,y,z = y,z,x
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-17 10:03:55 | 显示全部楼层
如果你要换值的话,位置顺序是对应的,看你的问题,y的位置没有变,前一个y跟后一个y的位置相同,所以不会换y的值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-17 19:57:02 | 显示全部楼层
=  号的意思就是把右边的值赋给左边
x,y,z=z,y,x    表达的实际是   x,y,z=3,2,1    所以就把z x 值进行了互换 。y不变  如果想变换三个, 调整顺序即可
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-17 21:41:18 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2025-1-30 22:19:45 | 显示全部楼层
python支持

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

使用道具 举报

发表于 2025-2-2 20:51:07 | 显示全部楼层    本楼为最佳答案   
方法一:元组解包(python常用)
x = 1
y = 2
z = 3
# 交换变量的值
x, y, z = z, x, y
print(f"x = {x}, y = {y}, z = {z}")
首先定义了三个变量 x、y、z 并分别赋值。然后使用元组解包的方式,将 z 的值赋给 x,x 的值赋给 y,y 的值赋给 z。最后打印出交换后的变量值。

方法二:中间变量的引入(c常用,但语言稍有不同)
x = 1
y = 2
z = 3
# 借助中间变量交换
temp = x
x = z
z = y
y = temp
print(f"x = {x}, y = {y}, z = {z}")
这里首先把 x 的值保存到临时变量 temp 中,然后将 z 的值赋给 x,再把 y 的值赋给 z,最后把临时变量 temp(也就是原来 x 的值)赋给 y,从而实现三个变量值的交换。

两种方法都行,但元组解包更简洁,并且也是python的一个特色和特点。看你清楚了没,多多点赞和设置最佳哦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-2-24 01:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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