这个表达式是做什么的:(x, y) = (y, x % y)?
What does this expression do: (x, y) = (y, x % y)?
我看到下面的代码,但不知道它的作用。
(x, y) = (y, x % y)
一开始我认为是这样的:
x=y
y=x%y
但我发现我不对。
有人可以解释一下 (x, y) = (y, x % y)
的作用吗?
你说得对,它按照你的想法行事。 x
被赋予 y
的值,y
被赋予 x%y
的值
示例:
>>> x=5
>>> y=10
>>> (x, y) = (y, x % y)
>>> x
10
>>> y
5
>>>
x
变为10
(即y
的值)
y
变成 x%y= 5%10 =5
它被称为元组assignment/unpacking,要线性复制它,你需要一个临时位置来存储x
的值。
更等价于:
temp=x
x=y
y=temp%y
它这样做:
t1 = y
t2 = x % y
x = t1
y = t2
del t1, t2
除了变量 t1
和 t2
实际上从未存在过。换句话说,它根据 旧 值计算分配给 x
和 y
的新值,并同时更改两者。
我这里没有确切的术语。
(x, y) = (y, x % y)
正在同时进行 x=y, y=x%y
。如果你按顺序 运行 这两行,你就是将 y 的值传递给 x 进行除法。
我看到下面的代码,但不知道它的作用。
(x, y) = (y, x % y)
一开始我认为是这样的:
x=y
y=x%y
但我发现我不对。
有人可以解释一下 (x, y) = (y, x % y)
的作用吗?
你说得对,它按照你的想法行事。 x
被赋予 y
的值,y
被赋予 x%y
示例:
>>> x=5
>>> y=10
>>> (x, y) = (y, x % y)
>>> x
10
>>> y
5
>>>
x
变为10
(即y
的值)
y
变成 x%y= 5%10 =5
它被称为元组assignment/unpacking,要线性复制它,你需要一个临时位置来存储x
的值。
更等价于:
temp=x
x=y
y=temp%y
它这样做:
t1 = y
t2 = x % y
x = t1
y = t2
del t1, t2
除了变量 t1
和 t2
实际上从未存在过。换句话说,它根据 旧 值计算分配给 x
和 y
的新值,并同时更改两者。
我这里没有确切的术语。
(x, y) = (y, x % y)
正在同时进行 x=y, y=x%y
。如果你按顺序 运行 这两行,你就是将 y 的值传递给 x 进行除法。