python3字典实现三级菜单功能

要求:

1、运行程序输出第一级菜单

2、选择一级菜单某项,输出二级菜单,同理输出三级菜单

3、让用户选择是否要返回上一级和退出。

dic = {            #创建字典
    'NBA':
        {'湖人队':
            ['詹姆斯','隆多','鲍尔','英格拉姆','库兹马'],
         '勇士队':
            ['库里','杜兰特','汤普森','格林','考辛斯'],
         '凯尔特人队':
            ['霍福德','斯马特','塔图姆','欧文','海沃德']},
    'CBA':
        {'辽宁队':
            ['郭艾伦','韩德君','贺天举','赵继伟','李晓旭'],
         '广东队':
            ['易建联','周鹏','赵睿','胡明轩','任骏飞'],
         '新疆队':
            ['李根','阿不都沙拉木','可兰白克','俞长栋','王子瑞']}
}
li = []            #创建空字符串用来接收字典一级元素的key
go = True            #死循环变量
while go:
    for i,v in enumerate(dic,1):                       
        print(i,v)
        li.append(v)            #将for循环输出的key轮流添加到列表li中
    u1 = input('请选择联赛:')
    if u1.isdigit():            
        u1 = int(u1)
        li1 = []            #创建空字符串用来接收字典二级元素的key
        while go:
            for i,v in enumerate(dic[li[u1-1]],1):
                print(i,v)
                li1.append(v)         #将for循环输出的key轮流添加到列表li1中
            u2 = input('请选择球队:')            
            if u2 == 'b':            #判断用户输入的是否是返回命令
                break
            else:            
                u2 = int(u2)
            while go:
                for v1 in dic[li[u1-1]][li1[u2-1]]:
                    print(v1)
                u3 = input('>>>')            
                u3 = str(u3)
                if u3 == 'b':             #判断用户输入的是否是返回命令
                    break
                elif u3 == 'q':             #判断用户输入的是否是退出命令
                    go = False
    elif u1.isalpha():
        u1 = u1.lower()
        if u1 == 'i':
            lx = input('联赛:')
            if dic.get(lx) == None:            #判断添加的内容是否存在
                dic[lx] = {}            #不存在则添加新的字典
            zl = input('球队:')
            if dic[lx].get(zl) == None:            #判断添加的内容是否存在
                dic[lx][zl] = []            #不存在则添加新的列表
            while True:
                mc = input('球员:')
                if mc in dic[lx][zl]:
                    print('已存在')
                elif mc == 'q':
                    li.clear()            #清空列表内容
                    break
                else:
                    dic[lx][zl].append(mc)

猜你喜欢

转载自blog.csdn.net/maergaiyun/article/details/82183747