# 简单吧简单吧,用动态变量不停的改变进行遍历
 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. VisualStudio2008+水晶报表的使用

    1:打开VisualStudio2008,新建一个Windows窗体应用程序项目,名称可以自定义,选择项目的保存路径,然后确定 刚新建好的窗体应用程序: 2. 把准备好的水晶报表插件复制到项目中的bi ...

  2. 如何学习 Webpack

    webpack-howto Tip: 本文是 webpack-howto 的原文,我觉得这篇文章写得非常好,确实算是目前学习 webpack 入门的必读文章.直接收录之. 本教程的目标 这是一本教你如 ...

  3. Linux_软件安装管理

    开始学习rpm,yum等命令的使用,下面的地址可供你学习 大部分都大同小异! 感谢作者:https://segmentfault.com/a/1190000011200461

  4. 学习angularjs的ng-hide和ng-disabled

    一,页面上有一个checkbox和一个文本框.切换checkbox能对文本框输入文本与否: <input type="checkbox" ng-model="ckS ...

  5. centos下升级git版本的操作记录

    在使用git pull.git push.git clone的时候,或者在使用jenkins发版的时候,可能会报类似如下的错误: error: The requested URL returned e ...

  6. 网络编程学习笔记:Socket编程

    文的主要内容如下: 1.网络中进程之间如何通信? 2.Socket是什么? 3.socket的基本操作 3.1.socket()函数 3.2.bind()函数 3.3.listen().connect ...

  7. required: true,el-upload :action="UploadUrl()"

    <el-form-item label="所属班级:" prop="Name" :rules="[{ required: true, messa ...

  8. Scrum Meeting 5

                第五次会议 No_00:工作情况 No_01:任务说明 待完成 已完成 No_10:燃尽图 No_11:照片记录 待更新 No_100:代码/文档签入记录 No_101:出席表 ...

  9. 第三周Linux学习报告

    Linux内核源代码简介: arch/x86中内容重点关注 init目录重要,内核启动相关的代码基本上都在init目录下.如main.c等.Start_kernel函数相当于普通C程序的main函数. ...

  10. SQL大杂烩

    DML 语句(数据操作语言)Insert.Update. Delete.Merge DDL 语句(数据定义语言)Create.Alter. Drop.Truncate DCL 语句(数据控制语言)Gr ...