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 8fib2(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/

10-12 04:58