我很困惑为什么我们不能使用特定方法交换变量

问题描述 投票:1回答:3

我有两个变量,x和y,我想交换它们的值。 (例如,如果x的值为20且y的值为“princess”,那么在交换之后我希望x具有值“princess”而y具有值20.)

你能解释为什么代码x = y y = x不起作用。

我知道如何使用temp变量和x,y,但我很困惑为什么上面的方法不起作用。我没有代码,除了

x=y
y=x

我只需要有人解释为什么上面的方法不起作用。

python python-3.x variables methods swap
3个回答
3
投票

在您的示例中,一旦将y的值分配给x,您就不再引用x的原始值,因此下一个操作不起作用。

尝试:

y,x = x,y

Facts and myths about Python names and values


1
投票

我将用一个例子来解释:

x = 20 
y = 5 

x = y ---> x is now 5 
y = x ---> y is now 5 too 

如果你想交换它们,你需要在python中做例如:

x, y = y, x

here

编辑:您提到要分配值“公主” - 字符串和20 - 整数。在(大多数)编程语言中,您定义变量的数据类型,并且不能将整数分配给定义为String的变量,反之亦然。


0
投票

让我们说x = 5y=10

x = y被执行之后,x = 10y = 10

y = x被执行后,x仍然= 10y仍然= 10

所以x = y = 10

要交换两个变量,Python内置了这个:使用x, y = y, x

© www.soinside.com 2019 - 2024. All rights reserved.