1-
def fib1(n):
a = 0
b = 1
while a < n:
print b
a = b
b = a+b
2
def fib2(n):
a, b = 0,1
while a < n:
print b
a,b = b, b+a
执行时:
fib1(10)
我得到了错误的答案: 0 1 2 4 8
fib2(10)
我得到正确的答案: 0 1 1 2 3 5 8
在fib 1中a = b
覆盖的值a
,
这意味着a
该语句不再是正确的值
b = a+b
但是,在您的第二个示例中,这两种情况都是同时发生的,a,b = a, b+a
这意味着a
仍然是正确的值。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句