在Python列表中打印最多十个元素的斐波那契数列

问题描述 投票:0回答:1

因此,作为Python的初学者,我一直在尝试解决循环和if-else语句中的练习问题,以更好地掌握程序流程和控制语句的基础知识。我正在解决这个问题,我必须打印斐波那契数列最多十个元素,如下所示:

输出:0,1,1,2,3,5,8,13,21,34,55 链接:https://pynative.com/python-if-else-and-for-loop-exercise-with-solutions/#h-exercise-12-display-fibonacci-series-up-to-10-terms .

我已经成功做到了这一点,但在数字 55 之后还打印了一堆随机值,我不知道为什么会发生这种情况。请指导我如何删除这些值。另外,请告诉我如何制作带有占位符值的 python 列表?我在列表中使用了“None”关键字来执行此操作,但我觉得必须有更好的方法来执行此操作:

list1=[0, 1, None, None, None, None, None, None, None, None]

for i in range(2, 11):

    list1[i]=list1[i-1]+list1[i-2]

    list1.append(list1[i])

print(list1)

输出:[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 1, 2, 3, 5, 8, 13, 21, 34]。 为什么 34 之后的这些额外值会打印在列表中?请解释。我期望它的输出是: [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]。

python list for-loop fibonacci
1个回答
0
投票

您可以

append
新值,而不是在列表中预先分配 None :

N = 10 # for a total sequence of length 10.
fib = [1, 1]
for i in range(2, N + 1):
    fib.append(fib[i - 1] + fib[i - 2])
© www.soinside.com 2019 - 2024. All rights reserved.