游戏主菜单设计——考察重点:字典

本文介绍了一个游戏系统中用户信息管理的实现方式,包括用户信息的存储、查询、添加、删除和展示等功能。通过字典存储用户信息,实现了账号名与用户详细信息的快速对应。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

# 游戏系统中已有用户的信息,存放在字典中
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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值