我也看了一些其他人的答案,很多的答案存在问题,每次调用函数 make_album() 后生成一个专辑字典会覆盖上次调用函数 make_album() 生成的字典,不符合题意。
我采取的解决方案是添加一个空列表 album_list ,每次调用函数 make_album() 生成的字典都添加到列表 album_list 中。
#8-7,2023-08-20,by qs
def make_album(singer,album,number = ''):
album_message = {
'歌手名':singer,
'专辑名':album,
}
if number:
album_message['歌曲数'] = number
return album_message
#创建一个保存专辑字典的列表
album_list = []
while True:
print('\n在任何时候输入【q】退出程序')
singer = input('请输入歌手名:')
if singer == 'q':
break
album = input('请输入专辑名:')
if album == 'q':
break
number = input('请输入专辑内的歌曲数:')
if number == 'q':
break
album = make_album(singer,album,number)
#向保存专辑字典的列表中添加专辑字典
album_list.append(album)
for k,v in album.items():
print(k + ':' + v)
print('-----显示专辑列表-----')
print(album_list)
#end
结果如下: