# 游戏系统中已有用户的信息,存放在字典中
members = {
1 :{'name':'白月黑羽', 'level':3, 'coins':300},
2 :{'name':'短笛魔王', 'level':5, 'coins':330},
3 :{'name':'紫气一元', 'level':6, 'coins':340},
4 :{'name':'拜月主', 'level':3, 'coins':32200},
5 :{'name':'诸法空', 'level':4, 'coins':330},
}
# 改变字典格式,以用户名为key,创建字典
nameMembers = {}
for key, value in members.items():
name = value['name']
value['id'] = key # 把id加到字典的value里
nameMembers[name] = value
print(nameMembers)
# 定义进入主菜单
menu = """
请选择操作选项:
1 查看用户账号信息
2 添加用户
3 删除用户
4 列出所有用户信息
0 退出
"""
# 定义函数: 提示用户输入账号名, 用户输入账号后,显示该用户的 ID, 等级和 金币数量。
def select_info():
username = input("请输入账号名:")
if username not in nameMembers:
print("账号不存在")
return
print(nameMembers[username])
# 定义函数,检查该账号名是否已经存在,如果已经存在,则提示用户重新输入。如果用户输入的账号不存在,则添加该信息到字典中。
def add_user():
while True:
username = input('请输入添加用户的账户名:')
if username in nameMembers:
print("账户已存在,请重新输入账户名")
else:
break
while True:
level = input('请输入该用户的等级,等级需为数字:')
# 如果不是数字,则输入格式错误
if not level.isdigit():
print('格式错误,请输入数字:')
else:
level = int(level)
break
while True:
coins = input('请输入该用户的金币数量,需为数字:')
# 如果不是数字,则输入格式错误
if not coins.isdigit():
print('格式错误,请输入数字:')
else:
coins = int(coins)
break
# 产生新的id号,为当前最大id+1
new_id = max(members.keys()) + 1 # 这里使用的是原字典,key就是id,所以可以直接用max取最大值
# 添加新账户到字典里 10:{'name':'天池剑尊', 'level':9, 'coins':13100},
nameMembers[username] = {'name': username, 'level': level, 'coins': coins, 'id': new_id}
print(nameMembers)
return
# 定义函数,检查该账号名是否已经存在,如果不存在,则提示用户重新输入。如果用户输入的账号存在,在用户字典中删除该账号。
def del_user():
while True:
username = input('请输入删除用户的账户名:')
# 如果不是数字,则输入格式错误
if username not in nameMembers:
print('账户不存在,请重新输入:')
else:
nameMembers.pop(username)
break
# 定义函数,打印出当前用户表里所有用户的信息
def show_info():
print(nameMembers)
while True:
option = int(input(menu))
if option == 1:
select_info()
elif option == 2:
add_user()
elif option == 3:
del_user()
elif option == 4:
show_info()
elif option == 0:
break
游戏主菜单设计——考察重点:字典
最新推荐文章于 2024-04-19 22:51:48 发布