【问题标题】:Fibonacci function list斐波那契函数列表
【发布时间】:2017-07-08 06:17:44
【问题描述】:

我目前正在做我的一部分任务,我必须完成它,所以如果用户在函数中输入 10 答案应该是

[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]

但我的程序导致

[1, 1, 2, 3, 5, 8, 13, 21, 34, 55]

这是我的程序

def fib(n):
    fibonacci = []
    a = 0
    b = 1
    for i in range(n):
        fibonacci.append(b)
        a, b = b, a+b
    return fibonacci

【问题讨论】:

  • 只需将 0 附加到列表中或将其初始化为 fibonacci = [0],而不是运行循环直到 range(n-1)。如果 n == 0,则返回一个空列表。

标签: python list function fibonacci


【解决方案1】:

您只需要附加 a 而不是 b。

def fib(n):
    fibonacci = []
    a = 0
    b = 1
    for i in range(n):
        fibonacci.append(a)
        a, b = b, a+b
    return fibonacci

print(fib(10)) 的结果

> python fib.py
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]

【讨论】:

  • 哇,哈哈,我觉得很愚蠢,谢谢你的帮助,我会在 11 分钟内选择它作为答案。非常感谢。
  • 没问题。另请注意我在问题中对您的原始代码所做的更改。在函数末尾检查 n 将永远不会起作用,因为它已经返回。如果您想早点返回,则需要先进行长度检查。但是,在这种情况下,0 不会运行范围循环,您最终会得到一个空列表。
猜你喜欢
  • 2014-05-03
  • 2015-06-05
  • 2013-08-03
  • 2014-05-19
  • 2015-08-30
  • 2013-03-14
  • 2013-02-24
相关资源
最近更新 更多