def confirm_users(confirmed_user,unconfirmed_user):
"""这个函数用于将未确认用户的名单列表
移动到已确认(审核)的用户的名单列表
"""
while unconfirmed_user:
user=unconfirmed_user.pop(0)
user=user.title()
confirmed_user.append(user)
print(confirmed_user)
def print_users(confirmed_user):
"""这个函数用于将已通过审核的名单列表逐一打印出来"""
for user in confirmed_user:
print(user)
confirmed_user = []
unconfirmed_user = ['alva','richard','steeve','ula']
#新建两个列表,已确认用户为空
confirm_users(confirmed_user,unconfirmed_user) #调用两个函数
print_users(confirmed_user)
print(confirmed_user) #打印出函数
以下是vscode终端运行结果:
['Alva']
['Alva', 'Richard']
['Alva', 'Richard', 'Steeve']
['Alva', 'Richard', 'Steeve', 'Ula']
Alva
Richard
Steeve
Ula
['Alva', 'Richard', 'Steeve', 'Ula']
问题:想问一下各位,就是在第一次调用的时候我把两个列表传给了第一个函数,但是调用第二个函数并且传输confirmed_user的时候,为什么这里传进去的列表实参不是我原本定义的那个空列表?但是根据结果,好像第一次函数调用就修改了这个confirmed_user列表的值,然后在调用第二次函数时,传进去的也是修改后的这个列表。这里我就不是很懂了,为什么这个例子里面调用函数修改了我原本定义的空列表啊?