2017-02-18 127 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