2014-02-23 121 views
0

我目前正試圖弄清楚如何提取由此函數創建的數字列表。Python從我的函數返回值

def getInput(): 
    numlist = [] 
    while True: 
     z = float(input("Enter a number (-9999 to quit): ")) 
     if z == -9999: 
      print(numlist) 
      return numlist 
     else: 
      numlist.append(z) 
      print(numlist) 


getInput() 

眼下的打印命令是隻爲我確認我加入號碼列表,但是當用戶退出,我需要能夠在其他功能使用新numlist(我去查找這些數字的平均值),並且當我在函數完成後嘗試打印numlist時,我得到一個錯誤,這導致我相信numlist正在消失。請給我一些幫助嗎?

+0

謝謝大家,比我想象的簡單哈哈。 – user3344446

回答

1

您沒有捕獲正在返回的數字。

def getInput(): 
    numlist = [] 
    while True: 
     z = float(input("Enter a number (-9999 to quit): ")) 
     if z == -9999: 
      print(numlist) 
      return numlist 
     else: 
      numlist.append(z) 
      print(numlist) 


numlist = getInput() 
#do processing here 
+0

謝謝!比我想象的更簡單haha – user3344446

+0

歡迎...我的榮幸:) –

0

您的功能使用return將列表對象返回給調用者。你會功能是返回值存儲在一個新的名字:

result = getInput() 

現在result將是你建在功能相同的列表的引用。

你可以給它任何你喜歡的名字;它甚至可以與函數中使用的名稱相同,但由於該名稱不是函數名稱空間的一部分,所以該名稱完全獨立於函數中的名稱。

0

您的問題本質上是一個函數調用中獲得的任何數據被放在堆棧上,並在函數結束時,堆棧被清除。所以如上所述,result = getInput()會做。或者你可以將一個變量作爲參數傳遞給函數並使用它。