2017-02-18 129 views
0

我目前在做我的任务的一部分,我必须使它所以如果用户输入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

只需追加0到列表或初始化它作为斐波纳契= [0]比运行循环直到范围(N-1)。如果n == 0,返回一个空列表。 – user3894045

回答

4

你只需要追加的,而不是湾

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] 
+0

哇哈哈,我感到愚蠢感谢帮助,我会选择它作为答案在11分钟内,当它让我。非常感谢。 –

+0

没问题。还请注意我在问题中对原始代码所做的更改。在函数结尾处检查n将无法工作,因为它已经返回。如果你想早点回来,你需要做长度检查。但是,在这种情况下,0将不会运行范围循环,并根据需要最终得到一个空列表。 – sberry