# 简单吧简单吧,用动态变量不停的改变进行遍历
 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. java算法----排序----(5)归并排序

    package log; import java.util.Arrays; public class Test4 { /** * java算法---归并排序 * * @param args */ pu ...

  2. Luogu4099 HEOI2013 SAO 组合、树形DP

    传送门 值得注意的是一般的DAG的拓扑序列数量是NP问题,所以不能直接入手 题目中给出的图可以看做是一个树形图,虽然方向比较迷.考虑使用树形图的性质 不妨任选一个点为根做树形DP,注意到数的位置与方案 ...

  3. vue开发小结(上)

    前言: 18年年底,就一个字,忙,貌似一到年底哪个公司都在冲业绩,包括我们自己开发自己公司的项目也一样得加把劲.自从18年年初立了个flag17年年终总结——走过2017,迎来2018Flag到现在又 ...

  4. open-falcon ---客户机agent操作

    open-falcon的agent用于采集机器负载监控指标,比如cpu.idle.load.1min.disk.io.util等等,每隔60秒push给Transfer.agent与Transfer建 ...

  5. vue-cli中的check-versions.js配置文件包括semver,chalk,shell插件的解释

    本文介绍vue-cli脚手架build目录中check-versions.js的配置 本文件是用来检测node和npm版本的 直接上代码加注释 // 下面的插件是chalk插件,他的作用是在控制台中输 ...

  6. 【MOOC EXP】Linux内核分析实验六报告

    程涵  原创博客 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 进程的描述和进程的创建 知识点梳理: ...

  7. 《Linux内核分析》课程第八周学习总结

    姓名:何伟钦 学号:20135223 ( *原创作品转载请注明出处*) ( 学习课程:<Linux内核分析>MOOC课程http://mooc.study.163.com/course/U ...

  8. 冲刺Two之站立会议9

    今天我们团队主要针对软件的功能进行了改进.因为它目前可以实现视频通话,语音聊天,文件传输和文字聊天的通信功能,我们想要在它的基础上实现临时局域群聊和群聊视频的功能,目前还没有完全实现.

  9. 201303014001 张敏 计科高职13-1 github使用心得

    Github:https://github.com/zhangmin131/text 个人心得体会: Git是一种良好的.支持分支管理的代码管理方式,能很好地解决团队之间协作的问题.每个工程师在自己本 ...

  10. “数学口袋精灵”App的第三个Sprint计划----开发日记(第一天12.7~第十天12.16)

    “数学口袋精灵”第三个Sprint计划----第一天 项目进度: 基本完成一个小游戏,游戏具有:随机产生算式,判断对错功能.通过轻快的背景音乐,音效,给玩家提供一个良好的氛围.  任务分配: 冯美欣: ...