[英]Troubleshooting Fibonacci series with 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]
fibs(10)
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
但是由於某種原因我得到的每個數字都是[0, 1, 1]
進入功能。
有任何想法嗎?
您帖子中的代碼不是有效的Python。 由於您的代碼能夠運行,它可能實際上是這樣的:
def fibs(number):
result = [0, 1]
for i in range(number-2):
result.append(result[-2] + result[-1])
return result
你的return result
是縮進的,這樣它就在for
循環中,而不是在它下面。 這將導致它在返回之前僅向列表中添加一個值,從而生成您看到的列表。
Unindent那條線,它應該正常工作。
在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]
我只是縮進代碼,它對我來說正常工作:
def fibs(number):
result = [0, 1]
for i in range(number-2):
result.append(result[-2] + result[-1])
return result
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.