美文网首页
【a, b = b, a +b】Python

【a, b = b, a +b】Python

作者: RayRaymond | 来源:发表于2020-04-08 09:17 被阅读0次

    生成斐波那契数列中存在一个不太常见的赋值方式 a, b = b, a+b

    # Fibonacci series
    def fib_loop_while(max):
        a, b = 0, 1
        while max > 0:
            a, b = b, a + b
            max -= 1
            yield a
    
    for i in fib_loop_while(10):
        print(i)
    

    在上面的代码中,a, b = b, a+b不能换成 a = bb = a + b

    过程拆解

    先计算 = 左边的内容,也就是 ba + b。然后再把结果赋值给 ab
    这其中的赋值是通过元组 tuple 拆分完成的。比如在 a, b = b, a 中,拆分元组(b,a)分别赋值给 ab 完成 a b 的交换。

    总结

    a, b = b, a + b
    

    可以等效为:

    temp = a + b 
    a = b
    b = temp
    

    相关文章

      网友评论

          本文标题:【a, b = b, a +b】Python

          本文链接:https://www.haomeiwen.com/subject/cekzphtx.html