【发布时间】:2020-01-20 18:17:32
【问题描述】:
这是语法吗:
x, y = 0,1
while y < 50:
print(y)
x, y = y, x+y
同理:
x = 0
y = 1
while y < 50:
print(y)
x = y
y = x+y
如果是这样,为什么它们会打印不同的结果?我试图了解第一个代码是如何打印的:1, 1, 3, 5, 8, 13, 21, 34,因为当我在脑海中调试并运行它打印的第二个代码时:1, 2, 8, 16, 32。基本上我无法理解第一个代码是如何逐行工作的。
【问题讨论】:
-
在第二个中,首先将
x重新赋值为y,然后将y赋值为x + y。在 Python 中,首先计算操作的右手。所以x, y = y, x + y首先在右边求值,然后赋值发生。 -
我想这更好地说明了
x, y = 0, 1,导致x = 0,y = 1。然后x, y = y, x + y导致x, y = 1, 0 + 1,这导致x = 1和y = 1。
标签: python variable-assignment