2014-03-28 139 views
-1

我正在python中工作,試圖編寫一個代碼,使Fibonacci序列作爲列表返回結果。我會怎麼做呢?我能夠編寫一個代碼來返回不是列表的值,但我不確定如何去編寫代碼來返回列表。在Python中返回一個列表

(這是我必須只返回值的代碼,只是沒有列表)

def fibo1(par): 
var1 = 0 
var2 = 1 
while var2 < par: 
    print var2 
    var3 = var1 + var2 
    var1 = var2 
    var2 = var3 

def main(): 
    number = int(raw_input("What is the number? ")) 
    return (fibo1(number)) 

main() 
+3

你沒有參加任務嗎?你的同學們上週提出這個問題。 – devnull

回答

0

這工作。而不是打印var2,只需將其添加到列表中,並在完成後返回列表。這裏是工作代碼:

def fibo1(par): 
    var1 = 0 
    var2 = 1 
    list = [] 
    while var2 < par: 
     list.append(var2) 
     var3 = var1 + var2 
     var1 = var2 
     var2 = var3 
    return list 

def main(): 
    number = int(raw_input("What is the number? ")) 
    print fibo1(number) 

main() 
0

可以使用屈服,當你想返回值,所以你只需要使用它作爲參數的清單功能將您的fibo1函數發生器:

def fibo1(par): 
    var1 = 0 
    var2 = 1 
    while var2 < par: 
     yield var2 
     var3 = var1 + var2 
     var1 = var2 
     var2 = var3 

def main(): 
    number = int(raw_input("What is the number? ")) 
    return list(fibo1(number)) 

print repr(main())