# 简单吧简单吧,用动态变量不停的改变进行遍历
 menu = {
     "北京":{
         "朝阳":{
                 "国贸":{
                     "CICC":{},
                     "HP":{},
                     "CCTV":{},
 },
                 "望京":{
                     "陌陌":{},
                     "奔驰":{},
                     ":{},
                 },
                 "三里屯":{
                     "优衣库":{},
                     "apple":{},
                 }
 },
         "昌平":{
             "沙河":{
                 "老男孩":{},
                 "阿泰包子":{},
             },
             "天通苑":{
                 "链家":{},
                 "我爱我家":{},
             },
             "回龙观":{},
         },
         "海淀":{
             "五道口":{
                 "谷歌":{},
                 "网易":{},
                 "Sohu":{},
                 "Sogo":{},
                 "快手":{},
                   },
             "中关村":{
                 "youku":{},
                 "Iqiyi":{},
                 "汽车之家":{},
                 "新东方":{},
                 "腾讯":{},

 },
 },
     },
     "上海":{
         "浦东":{
             "陆家嘴":{
                 "CICC":{},
                 "高盛":{},
                 "摩根":{},
             },
             "外滩":{},
         },
         "闵行":{},
         "静安":{},
         "":{},
     },
     "山东":{
         "济南":{},
         "德州":{
             "乐陵":{
                 "顶乌镇":{},
                 "城区":{},
             },
             "平原":{},
         },
         "青岛":{},
     },
 }

 current_layer = menu  #实现动态循环的初始变量
 # parent_layer = menu
 parent_layers = []    #保存父籍,最后一个元素永远都是父亲籍
 while True :
     for key in current_layer:
         print(key)
     choice = input(">>>:").strip()
     if    len(choice) == 0:continue
     if choice in current_layer:
         parent_layers.append( current_layer)   #在进下一层之前把当前层进行尾部追加,即下一层的父亲籍
         current_layer = current_layer[choice]  #将要被遍历的字典范围根据用户输入进行缩减范围
     elif choice == "b":
         if parent_layers:
             current_layer = parent_layers.pop()#进行最后一个的弹出并赋值返回父亲层
     else:
         print("无此项")

day7 新三级菜单的更多相关文章

  1. day24 新三级菜单

    china = { "shandong":{ "linyi":["lanshan","nanfang","he ...

  2. python学习笔记(字符串操作、字典操作、三级菜单实例)

    字符串操作 name = "alex" print(name.capitalize()) #首字母大写 name = "my name is alex" pri ...

  3. Python字典实现三级菜单

    ################################################ # Task Name: 三级菜单 # # Description:打印省.市.县三级菜单 # # 可 ...

  4. python 三级菜单 while循环三次,湖北省市-县-街道的选择,3个while的循环 -day2

    python编写一个三级while的循环菜单 1.定义字典,字典里面嵌套字典,内嵌字典的值为列表. 思路: 湖北省的市:字典中的定义3个字典,用于存储{序列-键:市名} shiqu_dir = {} ...

  5. 三级菜单的实现(python程序)

    这是刚开始写程序,三级菜单的程序基本是用字典实现,很low,以后学习了其他更好的东西,我会继续上传,然后争取在我水平高深之后,把这个简单的东西实现的狠高大上. _author_ = "zha ...

  6. 老男孩python学习之作业二---三级菜单

    因为之前花力气完成了购物小程序的作业 现在做这个三级菜单简直是so easy!! 1.显示省级菜单 2.交互,提示用户输入要查看的省份(退出e) 2.1.用户正确输入列表中的省份 3.显示市级菜单 3 ...

  7. dict的操作和三级菜单

    dict的基本操作 # Author:nadech info = { "stu001":"sjp", "stu002":"cxx& ...

  8. python day1 之三级菜单的正确姿势

    看了几个同学有关三级菜单的实现,都是通过一级一级输出,是较为过程的实现.另外如果菜单(树形结构)更多级这样处理起来就比较麻烦了. 可以使用python强大的列表和字典,实现的更优美或简洁一些: 注:复 ...

  9. Python_简单三级菜单制作

    一:制作要求 1.三级菜单 2.可依次选择进入各子菜单 3.所需新知识点:字典,列表 *本文通过三种方法完成,第一种:只使用循环,第二种:使用列表,第三种:使用字典 二:FlowChart流程图 与上 ...

随机推荐

  1. js 稍微判断下浏览器 pc 还是手机

        function isMobile() {    var a=navigator.userAgent;   var ref=/.*(Android|iPhone|SymbianOS|iPad| ...

  2. Linux/CentOS下安装MySql RPM Bundle

    一.下载对应的版本的MySql安装文件 1.下载路径 https://dev.mysql.com/downloads/mysql/ 2.选择对应的Linux版本和x86/x64位的安装文件 查看Lin ...

  3. 使用xshell连接服务器,数字键盘无法使用解决办法

    打开会话管理器,选中需要设置的服务器连接,右键->属性 选中 终端->VT模式->初始数字键盘模式->设为普通 保存,重新连接即可.

  4. 关于node.js的进程管理

    如果是单纯的运行一个node进程,那会比较简单,例如: node ./example.js 但是一般来说,当我们运行一个node进程之后,我们可能希望对这个进程进行更多的管理,例如,当node程序是一 ...

  5. [C#]使用Windows Form开发的百度网盘搜索工具

    BaiduDiskSearcher 用C#编写的百度网盘搜索工具(.NET4.0 & Visual Studio 2017) 功能 1.搜索任意名称的百度网盘共享文件 2.可以左键双击打开网盘 ...

  6. [UWP 自定义控件]了解模板化控件(7):支持Command

    以我的经验来说,要让TemplatedControl支持Command的需求不会很多,大部分情况用附加属性解决这个需求会更便利些,譬如UWPCommunityToolkit的HyperlinkExte ...

  7. SSO单点登录_理解

    SSO核心意义就一句话:一处登录,处处登录:一处注销,处处注销.即:在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统. 很多人容易把SSO与OAuth搞混.这里简单说明一下: OA ...

  8. xmlSpy套件(Altova MissionKit 2016)的Ollydbg调试过程及破解

    最近工作需要用到XML处理软件,网上找到Altova MissionKit 2016( 包含了XmlSpy.MapForce.StyleVision.UModel.DatabaseSpy等工具),用了 ...

  9. 第三次作业 (一)----------------------Visual Studio 2015的安装及单元测试

    这是第三周的第一个作业,Visual Studio 2015的安装及单元测试. 我的电脑之前安装过Visual Studio 2015,但是在安装过程中我从来没有留意过各种注意事项,所集正好借此作业的 ...

  10. 《linux内核设计与实现》第四章

    调度程序负责决定哪个进程投入运行,何时运行以及运行多长时间.只有通过调度程序合理调度,系统资源才能最大限度发挥作用,多进程才会有并发执行的效果. 最大限度地利用处理器时间的原则是,只要有可以执行的进程 ...