Python中的Fibonacci o/p不正确,因为未在同一行代码上分配值。为什么?

2024-04-26 00:39:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我对编程(一般和Python)和这个社区都是新手

下面是两个版本的斐波那契代码,一个由我自己尝试,另一个来自Python文档。后者有效,但我的不起作用,我能看到这两个代码之间的唯一区别是,我在while循环中的不同行上重新分配了“a”和“b”,而Python文档中的那一行。已将它们分配到同一行

事实上,当我在同一行代码中为a和b重新分配新值时,我得到了正确的输出——但我不知道为什么?在这种情况下,在哪一行重新分配值很重要

#My own version of the fibonacci code. o/p as 1 2 4 8
a, b=0,1
while b<10:
    print(b, end=" ")
    a=b
    b=a+b

#Python's doc version which works
a, b = 0, 1
while b < 10:
    print(b, end=" ")
    a, b = b, a+b

Tags: 代码文档版本versionmy编程情况社区
2条回答

因为在你的版本中,当你写b=a+b时,你只是在a=b之前写,所以这行是b=a+a

在另一个版本中,有a, b = b, a+b 但在这个例子中,b和a在同一时间变化

(如果你愿意,你可以说

a1, b1 = b0, a0+b0

你会说:

a1=b0
b1 = a1 + b0

)

在代码中,a在求和之前获取b的值

a = b <   a gets updated
b = a+b < - summation

在doc版本中,a在求和之前不会像在同一行中一样获得更新值。a和b的值在此行之后更新

a,b = b, a+b

相关问题 更多 >

    热门问题