我在python中不理解这段代码(帮助)

时间:2015-03-17 11:54:42

标签: python

所以代码是

def mystery(n):
    a, b = 0, 1
    while (a < n):
        print(a)
        a, b = b, a + b

我不太了解的是a,b = b,a + b是如何工作的。对我来说似乎很难理解。我很难理解变量如何与列表相关。有人可以了解正在产生的序列以及数字如何计算。

序列意味着

  

0

     

1

     

1

     

2

     

3

     

5

     

8

     

13

     

21

     

34

     

我会非常感激,提前谢谢!

1 个答案:

答案 0 :(得分:2)

a, b = b, a + b,中,在分配到左侧之前评估右侧的表达式。所以它相当于:

c = a + b
a = b
b = c

实际上在你的情况下交换,OP:

a, b = 0,1

将评估为b=0a=1