【问题标题】:Why is a,b=b,b+a different then a=b b=b+a? [duplicate]为什么 a,b=b,b+a 与 a=b b=b+a 不同? [复制]
【发布时间】:2021-10-06 11:01:29
【问题描述】:

试图创建一个最多为“n”个数的斐波那契数列,我发现下面的代码只将最后一个值加倍

def fibon(n):
    
    a=0
    b=1
  
    for i in range(n):

        a=b
        b=a+b
        print(b)

但是如果在同一行做,就可以做正确的操作

def fibon(n):
    
    a=0
    b=1
  
    for i in range(n):

        a,b=b,a+b
        print(b)

我只是想知道为什么第二种方法有效,两者之间的区别是什么。谢谢。

【问题讨论】:

    标签: python function fibonacci


    【解决方案1】:

    它们是不同的,因为在第二个版本中,您在 a+b 计算中使用 a 的“旧”值以原子方式进行分配。在第一个版本中,您首先设置a = b,因此您实际上设置了b = 2*b

    【讨论】:

      猜你喜欢
      • 2014-03-29
      • 1970-01-01
      • 2019-10-27
      • 2011-10-20
      • 2010-12-08
      • 2021-11-28
      • 2011-08-10
      • 2017-04-06
      • 1970-01-01
      相关资源
      最近更新 更多