• 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("无此项")
  • 相关阅读:
    vue项目中,设置所有的input框不能输入空格
    自定义vue-baidu-map 组件的信息窗体infowindow(百度地图信息窗体)
    协程
    线程池--进程池--回调函数
    线程基本内容
    进程基本内容
    锁--互斥锁
    socketserver模块实现并发
    tcp的粘包现象
    一些内置的魔术方法
  • 原文地址:https://www.cnblogs.com/wooya/p/5807488.html
Copyright © 2020-2023  润新知