繁体   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