• python打怪之路【第三篇】:利用Python实现三级菜单


    程序: 利用Python实现三级菜单

    要求:
      打印省、市、县三级菜单
      可返回上一级
      可随时退出程序

    coding:

    menu = {
        '北京':{
            '朝阳':{
                '国贸':{
                    'CICC':{},
                    'HP':{},
                    '渣打银行':{},
                    'CCTV':{},
                },
                '望京':{
                    '陌陌':{},
                    '奔驰':{},
                    '360':{},
                },
                '三里屯':{
                    '优衣库':{},
                    'apple':{},
                },
            },'海淀':{
                "五道口":{
                    "谷歌":{},
                    "网易":{},
                    "Sohu":{},
                    "Sogo":{},
                    "快手":{},
                },
                "中关村":{
                    "youku":{},
                    "Iqiyi":{},
                    "汽车之家":{},
                    "新东方":{},
                    "QQ":{},
                }
            },
        },
        '上海':{
            "浦东":{
                "陆家嘴":{
                    "CICC":{},
                    "高盛":{},
                    "摩根":{},
                },
                "黄埔":{},
            },
            "闵行":{},
            "静安":{},
        }
    }
    
    current_layer = menu  #实现动态循环
    parent_layers = []  #保存所有父级,最后一个元素永远都是父亲级
    while True:
        for key in current_layer:
            print(key)
        choice = input("请输入项,b返回上一级,q退出!>>>:").strip()
        if len(choice) == 0:continue
        if choice in current_layer:
            parent_layers.append(current_layer)  #在进入下一层之前,把当前层(也就是下一层的父级)
            #下一次loop,当用户选择b的时候,就可以直接取列表的最后一个值出来就OK了
            current_layer = current_layer[choice]  #将当前层改成了子层
        elif choice == "b":
            if parent_layers:
                current_layer = parent_layers.pop()  #取出列表的最后一个值,因为它就是当前层的父级
        elif choice == "q":  #输入q时,退出程序
            exit()
        else:
            print("无此项")
  • 相关阅读:
    Python批量获取京东商品列表信息
    AxureRP8.1(注册码)破解汉化教程
    sp_getAppLock使用[转]
    rebar3 escriptize
    三层次解析模型(其二):是何、为何、如何
    三层次解析模型(其一):无限、绝对、完美
    wpf项目引入System.Windows.Forms报错
    idea 批量修改
    Android studio 模拟器无法联网问题
    git
  • 原文地址:https://www.cnblogs.com/wooya/p/5807488.html
Copyright © 2020-2023  润新知