因此,作为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]。
您可以
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])