2014-02-23 91 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()会做。或者你可以将一个变量作为参数传递给函数并使用它。