如何将列表变量传递回函数外部(Python)
我认为使用return函数会导致放在它后面的变量被传递到我的函数之外(return?)。看来不是,为什么不是呢 我试图编写一些代码,要求我在函数内部编译一个包含5项的列表,然后将该列表传递到函数外部并对其进行一些处理。现在我只有一个写在它外面的print语句,只是想看看它是否在我的函数之外被传递,但我以后需要做更多的工作。它告诉我变量未定义,所以我假设它未被传递 为什么放在return命令后面的list变量不能传递到函数外部并可以自由使用,我需要做些什么才能使它真正在函数外部调用我的list变量如何将列表变量传递回函数外部(Python),python,list,function,return,Python,List,Function,Return,我认为使用return函数会导致放在它后面的变量被传递到我的函数之外(return?)。看来不是,为什么不是呢 我试图编写一些代码,要求我在函数内部编译一个包含5项的列表,然后将该列表传递到函数外部并对其进行一些处理。现在我只有一个写在它外面的print语句,只是想看看它是否在我的函数之外被传递,但我以后需要做更多的工作。它告诉我变量未定义,所以我假设它未被传递 为什么放在return命令后面的list变量不能传递到函数外部并可以自由使用,我需要做些什么才能使它真正在函数外部调用我的list变量
#Gather data about elements and turn into a list to check agsint function list later
!curl https://raw.githubusercontent.com/MicrosoftLearning/intropython/master/elements1_20.txt -o elements1_20.txt
elements_20 = open("elements1_20.txt","r")
elements_20.seek(0)
elements = elements_20.readline().strip()
element_list = []
while elements:
element_list.append(elements)
elements = elements_20.readline().strip()
print(element_list)
# define function to get user input and compile it into a list
def get_name():
user_list = []
while len(user_list) < 5:
user_input=input("Name one of the first 20 items please kind sir: ")
#check to make sure the input is unique
if user_input.lower() in user_list:
print("please don't enter the same word twice")
else:
user_list.append(user_input.lower())
return user_list
get_name()
print(user_list)
#收集有关元素的数据,并形成一个列表,以便稍后检查agsint功能列表
!卷曲https://raw.githubusercontent.com/MicrosoftLearning/intropython/master/elements1_20.txt -o elements1_20.txt
elements_20=打开(“elements1_20.txt”、“r”)
元素_20.搜索(0)
elements=elements_20.readline().strip()
元素列表=[]
而要素:
元素列表。追加(元素)
elements=elements_20.readline().strip()
打印(元素列表)
#定义函数以获取用户输入并将其编译为列表
def get_name():
用户列表=[]
而len(用户列表)<5:
用户输入=输入(“请说出前20项中的一项:”)
#检查以确保输入是唯一的
如果用户列表中的用户输入.lower():
打印(“请不要输入同一单词两次”)
其他:
user\u list.append(user\u input.lower())
返回用户列表
获取名称()
打印(用户列表)
附带说明:我需要函数不接受任何参数,所以我不能使用该方法作为解决方案 您需要将从
get_name()
返回的值保存到函数范围之外名为user_list
的变量,以便打印它:
#Storing the returned value from the function:
user_list = get_name()
print(user_list)
在不存储返回值的情况下,函数完成自身操作,返回堆栈中的值,在堆栈中该值不被任何内容捕获,然后将其取消引用。在功能主体内分配
用户列表
,仅适用于功能范围内。一旦返回,程序将不再“看到”任何名为user\u list
的变量,这将导致print()
语句失败。现在请理解,我需要设置一个变量,以便在调用函数时捕获返回值,否则返回值将丢失。谢谢你的时间,我现在已经开始工作了:)。