如何将列表变量传递回函数外部(Python)

如何将列表变量传递回函数外部(Python),python,list,function,return,Python,List,Function,Return,我认为使用return函数会导致放在它后面的变量被传递到我的函数之外(return?)。看来不是,为什么不是呢 我试图编写一些代码,要求我在函数内部编译一个包含5项的列表,然后将该列表传递到函数外部并对其进行一些处理。现在我只有一个写在它外面的print语句,只是想看看它是否在我的函数之外被传递,但我以后需要做更多的工作。它告诉我变量未定义,所以我假设它未被传递 为什么放在return命令后面的list变量不能传递到函数外部并可以自由使用,我需要做些什么才能使它真正在函数外部调用我的list变量

我认为使用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()
语句失败。

现在请理解,我需要设置一个变量,以便在调用函数时捕获返回值,否则返回值将丢失。谢谢你的时间,我现在已经开始工作了:)。