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

    数据结构

    menu = {

        '北京':{

            '海淀':{

                '五道口':{

                    'soho':{},

                    '网易':{},

                    'google':{}

                },

                '中关村':{

                    '爱奇艺':{},

                    '汽车之家':{},

                    'youku':{},

                },

                '上地':{

                    '百度':{},

                },

            },

            '昌平':{

                '沙河':{

                    '老男孩':{},

                    '北航':{},

                },

                '天通苑':{},

                '回龙观':{},

            },

            '朝阳':{},

            '东城':{},

        },

        '上海':{

            '闵行':{

                "人民广场":{

                    '炸鸡店':{}

                }

            },

            '闸北':{

                '火车站':{

                    '携程':{}

                }

            },

            '浦东':{},

        },

        '山东':{},

    }

    需求:

    • 可依次选择进入各子菜单
    • 可从任意一层往回退到上一层
    • 可从任意一层退出程序

    小白版

    menu = {
        '北京':{
            '海淀':{
                '五道口':{
                    'soho':{},
                    '网易':{},
                    'google':{}
                },
                '中关村':{
                    '爱奇艺':{},
                    '汽车之家':{},
                    'youku':{},
                },
                '上地':{
                    '百度':{},
                },
            },
            '昌平':{
                '沙河':{
                    '老男孩':{},
                    '北航':{},
                },
                '天通苑':{},
                '回龙观':{},
            },
            '朝阳':{},
            '东城':{},
        },
        '上海':{
            '闵行':{
                "人民广场":{
                    '炸鸡店':{}
                }
            },
            '闸北':{
                '火车站':{
                    '携程':{}
                }
            },
            '浦东':{
            },
        },
        '山东':{
            '济南':{},
            '青岛':{}
        }
    }
    print("在任意一层输入“q”退出,输入“b”返回上一层(除第一层外)")
    while True:
        for i in menu:
            print(i)
        choice = input("请输入所要进入地区:").strip()
        if not choice:continue  # 输入不为空
        if choice in menu:
            while True:
                for i in menu[choice]:
                    print(i)
                choice2 = input("请输入进入地区:").strip()
                if not choice2:continue
                if choice2 in menu[choice]:
                    while True:
                        for i in menu[choice][choice2]:
                            print(i)
                        choice3 = input("请输入进入地区:").strip()
                        if not choice3:continue
                        if choice3 in menu[choice][choice2]:
                            while True:
                                for i in menu[choice][choice2][choice3]:
                                    print(i)
                                choice_back = input("最后一层!返回还是退出?")
                                if choice_back == "q":
                                    exit()
                                elif choice_back == 'b':
                                    break
                        elif choice3 == 'b':
                            break
                        elif choice3 == "q":
                            exit()
                elif choice2 == 'b':
                    break
                elif choice2 == "q":
                    exit()
        elif choice == "q":
            exit()
    

     进阶版

    menu = {
        '北京':{
            '海淀':{
                '五道口':{
                    'soho':{},
                    '网易':{},
                    'google':{}
                },
                '中关村':{
                    '爱奇艺':{},
                    '汽车之家':{},
                    'youku':{},
                },
                '上地':{
                    '百度':{},
                },
            },
            '昌平':{
                '沙河':{
                    '老男孩':{},
                    '北航':{},
                },
                '天通苑':{},
                '回龙观':{},
            },
            '朝阳':{},
            '东城':{},
        },
        '上海':{
            '闵行':{
                "人民广场":{
                    '炸鸡店':{}
                }
            },
            '闸北':{
                '火车站':{
                    '携程':{}
                }
            },
            '浦东':{
            },
        },
        '山东':{
            '济南':{},
            '青岛':{}
        }
    }
    conj = menu
    lis = []
    while True:
        for i in conj:
            print(i)
        choice = input("请选择地区:").strip()
        if not choice:continue
        if choice in conj:
            lis.append(conj)
            conj = conj[choice]
        elif choice == "b":
            if len(lis) == 0:
                print('33[41;1m 已回到顶层33[0m')
            else:
                conj = lis.pop()
        elif choice == "q":
            exit()
    

      

  • 相关阅读:
    Daily Scrum02 12.05
    Daily Scrum02 12.04
    用户调研报告
    Daily Scrum02 12.03
    Daily Scrum02 12.02
    Daily Scrum02 12.01
    Daily Scrum02 11.30
    软件工程项目组Z.XML会议记录 2013/11/27
    Daily Scrum02 11.29
    201509-3 模板生成系统
  • 原文地址:https://www.cnblogs.com/fantsaymwq/p/9528899.html
Copyright © 2011-2022 走看看