我在Python的第一天就被一个很短的例子弄糊涂了。希望有人能解释一下为什么这几个版本之间有一些差异。请
V1:输出为1、1、2、3、5、8
a, b = 0, 1
while b < 10:
print(b)
a, b = b, a+b
V2:输出为1、2、4、8
a, b = 0, 1
while b < 10:
print(b)
a = b
b = a+b
在第一个版本中,首先计算右手,因此添加b
时不会增加。
要逐步通过第一个版本进行几次迭代:
1.
a = 0
b = 1
a, b = 1, 1 # b is 1, and a is 0
2.
a = 1
b = 1
a, b = 1, 2 # b is 1 and a is 1
3.
a = 1
b = 2
a, b = 2, 3 # b is 2 and a is 1
在第二个版本中,b
是在添加之前分配的,所以第二个版是这样的:
1.
a = 0
b = 1
a = b # a is now 1.
b = a + b # b is now 2, because both a and b are 1.
2.
a = 1
b = 2
a = b # a is now 2.
b = a + b # b is now 4, because both a and b are 2.