python - 为什么这两个 python 函数返回不同的结果?

标签 python python-2.7 python-3.x

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

最佳答案

在纤维 1 a = b 覆盖 a 的值,

这意味着 a 不再是语句的正确值

b = a+b

但是,在您的第二个示例中,这两件事同时发生在行 a,b = a, b+a 上,这意味着 a 是正确的值仍然。

关于python - 为什么这两个 python 函数返回不同的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36745436/

相关文章:

python - Django REST 摇摇欲坠 : How to use security section in Swagger settings?

python - 一些复杂的列表计算和切片;如何让它发挥作用?

python - Django:使用索引表示法而不是点表示法访问查询集的属性?

python - 装修契约(Contract)

python - ipython 笔记本的 matplotlib 和 libpng 问题

python - 提高pandas groupby的性能

python - 大字符串的某些部分不会被 str.replace() 函数替换

python - Pandas:使用 groupby 或数据透视表时按顺序排列日期

python - 更改 pandas 中数据框的堆叠

点击终端后Python time.sleep中断