创建一个变量以保存用户输入中的所有数据

时间:2020-02-26 18:28:07

标签: python

我正在编写一个小型控制台程序,以从用户那里获取值并对其进行迭代,然后将其显示给用户。但是我应该将从用户获得的所有值都保留在一个变量中。这是我可以创建的:

def get_options():
    print('============= Intranet App ==============')
    print('Please, choose the activity. Enter the corresponding number.')
    print('1. Create user')
    print('2. Notify users')
    print('3. Quit app')

    a = int(input('Option: '))

    all_users = []
    print('In variable you have these values', all_users)
    while True:
        if a == 1:
            print('Please enter the user type. (i.e., student, lecturer, management)')
            global user_type
            user_type = input('Enter user roles:')
            user_list = user_type.split()

        if user_type:
            print('Exiting program..')
            get_options()
        print(user_type, 'is created')
        all_users += user_list
        print(all_users)

但是,当新的递归开始时,all_users中的值就会消失。我该怎么做才能将所有值保留在一个变量中,而这些值永远都不应删除?

2 个答案:

答案 0 :(得分:1)

如果添加关键字参数并将列表传递到下面的递归层,则可以保留all_users列表。

def get_options(all_users=None):
    if all_users is None:
        all_users = []
# later in the func
    get_options(all_users=all_users)

答案 1 :(得分:0)

您只需要使all users的{​​{1}}列表成为全局列表,而不是本地列表。在get_options函数之外定义all_users