我的任務是創建一個函數,該函數生成3個從0開始的斐波那契數列的數字列表。下面是我的代碼。如何修復python斐波那契序列腳本?
def fibList(n):
a = 0; b = 1; fibList = []
if n <= 0:
return
elif n == 1:
fibList = [a]
elif n == 2:
fibList = [a,b]
else:
for i in range(0,n):
a, b = b, a + b
fibList.append(b)
return fibList
def main():
print (fibList(4))
print (fibList(10))
print (fibList(-4))
我想我的輸出看起來像[0,1,1,2]爲4,[0,1,1,2,3,5,8,13,21,34,55 ]爲10,[]爲-4
我的問題從fibList(4)開始,當前給出的輸出爲[1,2,3,5],而fibList(10)給出[1,2, 3,5,8,13,21,34,55,89]和-4我得到「None」而不是[]。我得到[0]和fibList(2)我得到[0,1],但是當我測試fibList(3)時,第一個0和1丟失,給我[1,2 ,3] 我該怎麼做才能讓3以上的任何數字以[0,1,1,2 ...]開頭?我的主要問題是讓0和1成爲序列中的前兩個數字,並使fibList(-4)產生[]。 任何幫助或提示將不勝感激:-)
fibanacci序列是0,1,1,2,3,5 ...你爲什麼跳過2? – Foon 2015-02-17 21:41:00
那麼,對於'-4'的情況,你的裸機'return'相當於'return None',而不是'return []',因爲你聲明的是你想要的結果。而且,在'2'以上的任何情況下,您只是將列表中的b值附加到最初的空列表中(即您跳過前兩個元素),然後按@Foon提到的,您的對於任何一種正面情況的預期輸出似乎都是可疑的... – twalberg 2015-02-17 21:53:48