簡體   English   中英

使用python對Fibonacci系列進行故障診斷

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM