python的 a,b=b,a+b 和 a=b b=a+b 的区别

Posted Gex

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python的 a,b=b,a+b 和 a=b b=a+b 的区别相关的知识,希望对你有一定的参考价值。

def fab(max):
    n, a, b = 0, 0, 1
    while n < max:
        print(b)
        a = b
        b = a + b
        n = n + 1
fab(10)

输出

1
1
2
4
8
16
32
64
128
256

def fab(max):
    n, a, b = 0, 0, 1
    while n < max:
        print(b)
        a, b = b, a + b
        n = n + 1
fab(10)

输出

1
1
2
3
5
8
13
21
34
55

我想这应该涉及到“=”赋值运算

a, b = b, a+b

先算“=”右边,b、a+b,然后赋值给a、b

应该分解为:

def fab(max):
    n, a, b = 0, 0, 1
    while n < max:
        print(b)
        c = b
        b = a + b
        a = c
        n = n + 1
fab(10)

输出:

1
1
2
3
5
8
13
21
34
55

 其他:

def fab(max):
    n, a, b = 0, 0, 1
    while n < max:
        yield b  
        c = b
        b = a + b
        a = c
        n = n + 1
for i in fab(10):
    print(i)

 

以上是关于python的 a,b=b,a+b 和 a=b b=a+b 的区别的主要内容,如果未能解决你的问题,请参考以下文章

python中a,b=b,a原理

理解 Python 交换:为啥 a, b = b, a 并不总是等价于 b, a = a, b?

python之小技巧积累

给予两个整数a和b,计算它们的和a+b python

Python 输入两个整数a和b,求a-b的绝对值?

在 Python 中是 a, b, = 0, 0 在语义上等同于 a = b = 0