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 1a = b
覆盖 a
的值,
这意味着 a
不再是该语句的正确值b = a+b
但是,在您的第二个示例中,这两件事同时发生在 a,b = a, b+a
行上,这意味着 a
仍然是正确的值。
关于python - 为什么这两个python函数返回不同的结果?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36745436/