Discuss / Python / 变量赋值 a, b = b, a + b 疑问,求解!!!

变量赋值 a, b = b, a + b 疑问,求解!!!

Topic source

各位大神,我想请问以下这个哪里有问题了?? 原本的例子是组合赋值 a, b = b, a + b 更改后的例子分开赋值 a = b b = a + b 我很是不解,纠结一晚上了,没法理解其中含意。

print('组合例子:') def fib(max): n, a, b = 0, 0, 1 while n < max : print(n, a, b) a, b = b, a + b n = n + 1 return 'done' fib(6)

print('分开例子:') def fib(max): n, a, b = 0, 0, 1 while n < max : print(n, a, b) a = b b = a + b n = n + 1 return 'done' fib(6)

显示结果:

组合例子: 0 0 1 1 1 1 2 1 2 3 2 3 4 3 5 5 5 8

分开例子: 0 0 1 1 1 2 2 2 4 3 4 8 4 8 16 5 16 32

BK002012

#2 Created at ... [Delete] [Delete and Lock User]

合在一起的是同时进行的a=b,b=a+b 你分开后,就变成先给a赋值b,然后再b=a+b(实际效果b=b+b) 如果想分开的话,可能得再引入个c, c=a a=b b=c+b 这样结果应该就对了

哦……我突然想到了,不是看你的讲解才懂, 而是 我炸一眼看到了你的代码 a=b,b=a+b 这句, 忽然灵光一闪,b=a+b这个已经在a=b时变了,而不是原来的a值了。 在这之前我还一直在砖研这个问题呢,呵呵!这下理解了。 虽然代码一样,却是让我豁然明了,真是太谢谢你了。


  • 1

Reply