如果以不同方式初始化变量,则斐波那契数列打印错误

时间:2019-04-03 02:13:07

标签: python-3.x

我正在从头学习python。我陷入了一个问题,即当我试图让Fibonacci系列在同一行中初始化变量时,我得到了正确的输出,但是当我在不同行中进行时,它却没有给我正确的输出,有人可以吗?向我解释为什么?预先谢谢

工作副本

a, b = 0, 1

while a<10:
    print("The value here is", a)
    a, b =b, a+b

输出: (“这里的值是”,0) ('这里的值是',1) ('这里的值是',1) (“这里的值是”,2) (“这里的值是”,3) (“这里的值是”,5) (“这里的值为” 8)

下面的代码不起作用

a = 0 
b = 1

while a<10: 
    print(a)
    a=b
    b=a+b

输出: 0 1个 2 4 8

1 个答案:

答案 0 :(得分:0)

在第一个代码中,即a,b = b,a + b,计算和赋值一次性完成。因此,将首先执行=的代码权限,然后将其分配给= =的参数。

因此,a将被设置为值b,b将被设置为b + a的旧值,而不是新值。

但是第二个代码b的值是在a用b的值更新后计算的。

希望很清楚。