Python从我的函数返回一个值

时间:2014-02-23 22:42:16

标签: python list function return-value

我目前正在尝试弄清楚如何提取此函数创建的数字列表。

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正在消失。我可以帮忙吗?

3 个答案:

答案 0 :(得分:1)

您没有捕获正在返回的numlist。

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

答案 1 :(得分:0)

您的函数使用return将列表对象返回给调用者。您将以新名称存储该函数的返回值:

result = getInput()

现在result将引用您在函数中构建的相同列表。

你可以给它任何你喜欢的名字;它甚至可以与函数中使用的名称相同,但由于此名称不是函数名称空间的一部分,因此该名称与函数中的名称完全不同。

答案 2 :(得分:0)

您的问题基本上是在函数调用期间获取的任何数据都放在堆栈中,并且在函数结束时清除堆栈。如上所述,result = getInput()会这样做。或者你可以将一个变量作为参数传递给函数并使用它。