zoukankan      html  css  js  c++  java
  • Python 三级菜单

    三级菜单实现的基本原理就是在字典中vaules也可以是字典,所以可以层层嵌套形成多级的格局

    我们可以来看一下代码:

    # 一级菜单
    def menu1():
        print('一级菜单'.center(40,'-'))
        for index1,key1 in enumerate(dic.keys(),1):   # 遍历一级菜单
            print(index1,key1)
            dic_key[str(index1)] = key1
        # print(dic_key)
        choose = input("请选择1级菜单,输入B返回上一级菜单,输入Q退出菜单:")
        if choose == 'q':quit()
        elif choose == 'b':
            print("此处为一级菜单,不能返回")
        elif dic_key.get(choose):
            menu2(dic_key[choose])      # 将二级菜单的key传给函数menu2
        else:
            print("输入有误,请重新输入")
    
    
    def menu2(choose1):
        print('二级菜单'.center(40, '-'))
        for index2,key2 in enumerate(dic[choose1].keys(),1):      # 遍历二级菜单
            print(index2,key2)
            dic_key[str(index2)] = key2
        choose2 = input("请选择2级菜单,输入B返回上一级菜单,输入Q退出菜单")
        if choose2 == 'q':quit()
        elif choose2 == 'b':
            menu1()
        elif dic_key.get(choose2):
            menu3(choose1,dic_key[choose2])
        else:
            print("输入有误,请重新输入")
    
    
    def menu3(choose1,choose2):
        print('三级菜单'.center(40, '-'))
        for index3, key3 in enumerate(dic[choose1][choose2].keys(), 1):
            print(index3, key3)
            dic_key[str(index3)] = key3
        choose3 = input("请选择3级菜单,输入B返回上一级菜单,输入Q退出菜单")
        if choose3 == 'q':
            quit()
        elif choose3 == 'b':
            menu2(choose1)
        elif dic_key.get(choose3):
            menu4(choose1,choose2,dic_key[choose3])
        else:
            print("输入有误,请重新输入")
    
    
    def menu4(choose1,choose2,choose3):
        for index4, vaule in enumerate(dic[choose1][choose2][choose3],1):
            print(index4, vaule)
    
    
    if __name__ == '__main__':
        dic = 
            {
                '北京': {
                    '东城':
                        {
                            '沙河': ['老男孩', '恋家'],
                            '天通苑': ['手机卖场', '屌丝吧']
                        },
                    '朝阳':
                        {
                            '花家地': ['朝阳公园', '望京soho'],
                            '北小河': ['北小河公园', '北京中学']
                        }
                },
                '上海': {
                    '虹桥':
                        {
                            '虹桥机场': ['超市', '特产店', '水吧'],
                            '东方明珠': ['电影院', '游泳馆', '餐馆']
                        },
                    '浦东':
                        {
                            '景秀路': ['世纪公园', '立交桥'],
                            '中环路': ['鲁迅公园', '同济大学']
                        }
                }
            }
        dic_key = {}
        while True:
            menu1()
    
  • 相关阅读:
    C
    A
    hdu 三部曲1 Popular Cows tarjan算法&&缩点&&拓扑排序
    hdu 三部曲 Going Home 最小费用最大流 EK算法
    hdu 三部曲 1Minimum Cost 最小费用最大流EK算法
    hdu 三部曲1 Is the Information Reliable? 差分约束 bellman_ford算法
    hdu 三部曲1 Intervals 差分约束问题 spfa算法
    hdu 三部曲 Crashing Robots
    hdu 三部曲2 Rebuilding Roads
    Codeforces 1277C As Simple as One and Two
  • 原文地址:https://www.cnblogs.com/learnC/p/5997729.html
Copyright © 2011-2022 走看看