三级菜单实现

需要:
1. 运行程序输出第一级菜单
2. 选择一级菜单某项,输出二级菜单,同理输出三级菜单
3. 菜单数据保存在文件中
4. 让用户选择是否要退出
5. 有返回上一级菜单的功能


解题思路:
1.先实现选择一级菜单的项输出二级菜单,同理输出三级菜单
2.对输入结果判断(匹配进入下一级,不匹配退出)
3.增加用户选择功能,即增加结果判断
4.增加返回上一级菜单功能,利用循环嵌套,重点tag的使用。
写的过程中,注意把功能分解,把框架搭起来,一步一步添加附属功能。
data = {
    '火影':{
       '木叶村':{
           '宇智波.鼬': {'属性能力':'万花筒写轮眼','男':26},
           '日向雏田': {'属性能力':'白眼','女':24},
           '我爱罗': {'属性能力':'砂纸守鹤','男':24},
       },
        '晓':{
            '佩恩':{'属性能力':'轮回眼','男':28},
            '鬼鲛':{'属性能力':['水遁','鲛肌'],'男':28},
            '迪达拉':{'属性能力':['黏土炸弹','自爆'],'男':28}
        },
        '代目':{
            '初代':{'姓名':'千手柱间','属性能力':'树诞降临','男':99999},
            '三代':{'姓名':'猿飞','属性能力':['土流大河','召唤猿魔'],'男':64},
            '四代':{'姓名':'波风水门','属性能力':['飞雷神之术','螺旋丸'],'男':34},

        },
    },
    '妖精的尾巴':{
        '灭龙魔导师':{
            '纳兹':{'属性能力':'火之灭龙魔法','男':21,},
            '伽吉鲁':{'属性能力':'铁之灭龙魔法','男':23,},
            '温蒂':{'属性能力':'天之灭龙魔法','女':18,},
        },
        '超S魔导师':{
            '吉尔达斯':{'属性能力':'粉碎','男':28},
            '艾璐萨':{'属性能力':'变装魔法','女':26},
            '米拉杰':{'属性能力':'变成撒旦','女':27},
        },
        '六魔将':{
            '深夜':{'属性能力':'扭曲空间','男':24},
            '克布拉':{'属性能力':'毒之灭龙魔法','男':24},
            '安吉拉':{'属性能力':'召唤星灵','女':22},
        },
    }
}

def func():
    tag = True
    while tag:
        ret1 = []
        for i in data:
            ret1.append(i)
        print('这是一级菜单',ret1)
        info1 = input('一级菜单请选择:').strip()
        if info1 in ret1:
            while tag:
                ret2 = []
                for j in data[info1]:
                    ret2.append(j)
                print('这是二级菜单',ret2)
                info2 = input('二级菜单请选择:').strip()
                if info2 in ret2:
                    while tag:
                        ret3 = []
                        for k in data[info1][info2]:
                            ret3.append(k)
                        print('这是三级菜单',ret3)
                        info3 = input('三级菜单请选择:').strip()
                        if info3 in ret3:
                            print(data[info1][info2][info3])
                            tag = False
                        elif info3 == 'retn':
                            break
                        elif info3 == 'quick':
                            tag = False
                        else:
                            print('三级查询结果不存在')
                            tag = False

                elif info2 == 'retn':
                    break
                elif info2 == 'quick':
                    tag = False
                else:
                    print('二级菜单查询结果不存在')
                    tag = False

        elif info1 == 'quick':
            tag = False
        else:
            print('一级菜单查询结果不存在')
            tag = False
func()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值