我目前正在尝试弄清楚如何提取此函数创建的数字列表。
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 :(得分: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()会这样做。或者你可以将一个变量作为参数传递给函数并使用它。