# 简单吧简单吧,用动态变量不停的改变进行遍历
 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. Luogu4770 NOI2018 你的名字 SAM、主席树

    传送门 UPD:发现之前被smy误导的一个细节,改过来之后就AC了-- 一道比较套路的SAM题,虽然我连套路都不会-- 先考虑前\(68pts\),也就是\(l=1 , r=|S|\)的情况.我们对\ ...

  2. git 提交新增文件到网站

    git add -A 是将所有的修改都提交.你可以用git status查看当前的变化,然后通过git add xxx有选择的提交.git commit 是将变化先提交到本地.git commit - ...

  3. Luogu P1546 最短网络 Agri-Net

    其实这道题根本没必要写,但为了测试vector+堆优化的Prim试一发. 再次觉得Prim和Dijkstra很像,堆优化版本也差不多. 和Dijkstra一样,Prim也是在之前的dis点中选取一个最 ...

  4. Opencv 2.4.10 +VS2010 项目配置

    资料来源:http://blog.csdn.net/scottly1/article/details/40978625

  5. testNG-失败用例重跑方法探究

    实现IRetryAnalyzer类,重写其中的retry方法public class TestNGRetry implements IRetryAnalyzer { private int retry ...

  6. 以太坊remix-ide本地环境搭建

    remix-ide简介 ​ remix-ide是一款以太坊官方solisity语言的在线IDE,可用于智能合约的编写.测试与部署,不过某些时候可能是在离线环境下工作或者受限于网速原因,使用在线remi ...

  7. 如何利用Android Studio打包React Native APK

    ok!百度出来的东西很杂,所以,这里介绍一种最简单,最合适我们(新手,应该是吧)的APK的打包方式! 当然!这种打包是基于Android Studio的,所以,注意喽!!!! 废话不多说开始吧! 首先 ...

  8. #个人作业Week2——结对编程对象代码复审

    General 代码能够正确运行,能够正确生成指定数量的题目和答案,并且能够对给出的题目和答案文件进行比对,输出结果. 代码没有非常复杂的逻辑,比较容易理解,但是在缺少注释的情况下有部分代码需要较长时 ...

  9. 【BUAA软件工程】第一次阅读作业

    BUAA软件工程 第一次阅读作业 项目 内容 这个作业属于哪个课程? 北航软工 这个作业的要求在哪里? 第一次个人作业 我在这个课程的目标是? 学习高效严谨的软件工程开发过程,建立团队意识 这个作业在 ...

  10. 《Linux内核分析》第六周笔记 进程的描述和进程的创建

    进程的描述和进程的创建 一.进程的描述 1.进程描述符task_struct数据结构(一) 操作系统的三大功能:进程管理(核心).内存管理.文件系统. 进程控制块PCB——task_struct(进程 ...