我正在阅读一本教科书,我不知道为什么这段代码在编译器上的编译方式与本书中的内容不同。
def fibs(number):
result = [0, 1]
for i in range(number-2):
result.append(result[-2] + result[-1])
return result
所以这个:
fibs(10)
应该给我[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
但由于某种原因,我会为我传入函数的每个数字获得[0, 1, 1]
。
有什么想法吗?
答案 0 :(得分:2)
在Python中,缩进是最重要的。您发布的代码拼写错误。
>>> def fibs(number):
... result = [0, 1]
... for i in range(number-2):
... result.append(result[-2] + result[-1])
... return result
...
>>> fibs(10)
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
答案 1 :(得分:1)
我只是缩进了代码,它对我来说正常工作:
def fibs(number):
result = [0, 1]
for i in range(number-2):
result.append(result[-2] + result[-1])
return result