Python 为什么这段代码会打印斐波那契级数?

Python 为什么这段代码会打印斐波那契级数?,python,python-3.x,while-loop,do-while,Python,Python 3.x,While Loop,Do While,所以我的问题是关于行“a,b=b,a+b”以及行“a,b=0,1” 这些线条意味着什么,它们在做什么 def fib2(n): result = [] a, b = 0, 1 while a < n: result.append(a) a, b = b, a+b return result def fib2(n): 结果=[] a、 b=0,1 而a

所以我的问题是关于行“
a,b=b,a+b
”以及行“
a,b=0,1

这些线条意味着什么,它们在做什么

def fib2(n):
    result = []
    a, b = 0, 1
    while a < n:
        result.append(a)
        a, b = b, a+b
    return result
def fib2(n):
结果=[]
a、 b=0,1
而a
a,b=b,a+b
是一种多重赋值语句。在这样的语句中,右侧的表达式都会被计算 在任何作业开始之前。右侧表达式从左到右求值

a的情况类似,b=0,1
,其中
a
获取
0
b
获取
1

a, b=b, a+b   # is described as

temp = a
a = b
b= temp + b
如果你看shell中的
a,b=0,1

In [37]: a,b = 0,1

In [38]: a,b
Out[38]: (0, 1)

In [40]: type((a, b))
Out[40]: tuple

In [41]: a
Out[41]: 0

In [42]: b
Out[42]: 1
所以它只是将变量赋值给元组值