我正在编写一个小型控制台程序,以从用户那里获取值并对其进行迭代,然后将其显示给用户。但是我应该将从用户获得的所有值都保留在一个变量中。这是我可以创建的:
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
中的值就会消失。我该怎么做才能将所有值保留在一个变量中,而这些值永远都不应删除?
答案 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
。