# 简单吧简单吧,用动态变量不停的改变进行遍历
 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. Tensorflow[源码安装时bazel行为解析]

    0. 引言 通过源码方式安装,并进行一定程度的解读,有助于理解tensorflow源码,本文主要基于tensorflow v1.8源码,并借鉴于如何阅读TensorFlow源码. 首先,自然是需要去b ...

  2. Identity(四)

    本文摘自:ASP.NET MVC 随想录——探索ASP.NET Identity 身份验证和基于角色的授权,中级篇 探索身份验证与授权 在这一小节中,我将阐述和证明ASP.NET 身份验证和授权的工作 ...

  3. 如何传递参数给ASP.NET Core的中间件(Middleware)

    问题描述 当我们在ASP.NET Core中定义和使用中间件(Middleware)的时候,有什么好的办法可以给中间件传参数吗? 解决方案 在ASP.NET Core项目中添加一个POCO类来传递参数 ...

  4. 将WinForm程序(含多个非托管Dll)合并成一个exe的方法

    原文:将WinForm程序(含多个非托管Dll)合并成一个exe的方法 开发程序的时候经常会引用一些第三方的DLL,然后编译生成的exe文件就不能脱离这些DLL独立运行了. ILMerge能把托管dl ...

  5. 手机端@media的屏幕适配

    @media only screen and (width: 320px) { html { font-size: 16px; }} @media only screen and (width: 36 ...

  6. ML.NET 示例:二元分类之垃圾短信检测

    写在前面 准备近期将微软的machinelearning-samples翻译成中文,水平有限,如有错漏,请大家多多指正. 如果有朋友对此感兴趣,可以加入我:https://github.com/fei ...

  7. .Net Core Cookie-Based认证与授权

    .Net Core的其中一种认证与授权模式是基于Cookie的,首先我们先创建一个.Net Core MVC 项目: 然后增加对页面访问的权限控制,对要访问的页面Conytroller增加Author ...

  8. JMeter:响应结果乱码解决方法

    JMeter:响应结果乱码解决方法 我们经常使用jmeter做接口测试或者正则匹配 看到的响应结果存在乱码,这是小白经常会问的问题,这是因为jmeter会按照jmeter.properties文件中, ...

  9. Ceph分布式存储-原理介绍及简单部署

    1)Ceph简单概述Ceph是一个分布式存储系统,诞生于2004年,最早致力于开发下一代高性能分布式文件系统的项目.Ceph源码下载:http://ceph.com/download/.随着云计算的发 ...

  10. Linux下环境变量配置方法梳理(.bash_profile和.bashrc的区别)

    在linux系统下,如果下载并安装了应用程序,在启动时很有可能在键入它的名称时出现"command not found"的提示内容.如果每次都到安装目标文件夹内,找到可执行文件来进 ...