首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么a,b=b,b+a与a=b b=b+a不同?

为什么a,b=b,b+a与a=b b=b+a不同?
EN

Stack Overflow用户
提问于 2021-07-31 03:04:46
回答 1查看 32关注 0票数 0

试图创建一个fibonacci序列,直到"n“数,我发现下面的代码只会使最后一个值加倍

代码语言:javascript
复制
def fibon(n):
    
    a=0
    b=1
  
    for i in range(n):

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

但是,如果在同一行中完成,则可以执行正确的操作。

代码语言:javascript
复制
def fibon(n):
    
    a=0
    b=1
  
    for i in range(n):

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

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

EN

回答 1

Stack Overflow用户

发布于 2021-07-31 03:06:09

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68598761

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档