lyl2017 发表于 2017-5-17 09:35:25

新手求教:数字互换问题

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

这么做只是x和z互换啊!
是不是还需要进一步操作?

iVi 发表于 2017-5-17 09:39:45

x,y,z = y,z,x

就是啥也不会 发表于 2017-5-17 10:03:55

如果你要换值的话,位置顺序是对应的,看你的问题,y的位置没有变,前一个y跟后一个y的位置相同,所以不会换y的值

yongxi 发表于 2017-5-17 19:57:02

=号的意思就是把右边的值赋给左边
x,y,z=z,y,x    表达的实际是   x,y,z=3,2,1    所以就把z x 值进行了互换 。y不变如果想变换三个, 调整顺序即可

xdu-zy 发表于 2017-5-17 21:41:18

{:10_256:}{:10_256:}

某一个“天” 发表于 2025-1-30 22:19:45

python支持

x,y,z = y,z,x

惊晓欲仙 发表于 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的一个特色和特点。看你清楚了没,多多点赞和设置最佳哦{:5_108:}
页: [1]
查看完整版本: 新手求教:数字互换问题