day7 新三级菜单
# 简单吧简单吧,用动态变量不停的改变进行遍历
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 新三级菜单的更多相关文章
- day24 新三级菜单
china = { "shandong":{ "linyi":["lanshan","nanfang","he ...
- python学习笔记(字符串操作、字典操作、三级菜单实例)
字符串操作 name = "alex" print(name.capitalize()) #首字母大写 name = "my name is alex" pri ...
- Python字典实现三级菜单
################################################ # Task Name: 三级菜单 # # Description:打印省.市.县三级菜单 # # 可 ...
- python 三级菜单 while循环三次,湖北省市-县-街道的选择,3个while的循环 -day2
python编写一个三级while的循环菜单 1.定义字典,字典里面嵌套字典,内嵌字典的值为列表. 思路: 湖北省的市:字典中的定义3个字典,用于存储{序列-键:市名} shiqu_dir = {} ...
- 三级菜单的实现(python程序)
这是刚开始写程序,三级菜单的程序基本是用字典实现,很low,以后学习了其他更好的东西,我会继续上传,然后争取在我水平高深之后,把这个简单的东西实现的狠高大上. _author_ = "zha ...
- 老男孩python学习之作业二---三级菜单
因为之前花力气完成了购物小程序的作业 现在做这个三级菜单简直是so easy!! 1.显示省级菜单 2.交互,提示用户输入要查看的省份(退出e) 2.1.用户正确输入列表中的省份 3.显示市级菜单 3 ...
- dict的操作和三级菜单
dict的基本操作 # Author:nadech info = { "stu001":"sjp", "stu002":"cxx& ...
- python day1 之三级菜单的正确姿势
看了几个同学有关三级菜单的实现,都是通过一级一级输出,是较为过程的实现.另外如果菜单(树形结构)更多级这样处理起来就比较麻烦了. 可以使用python强大的列表和字典,实现的更优美或简洁一些: 注:复 ...
- Python_简单三级菜单制作
一:制作要求 1.三级菜单 2.可依次选择进入各子菜单 3.所需新知识点:字典,列表 *本文通过三种方法完成,第一种:只使用循环,第二种:使用列表,第三种:使用字典 二:FlowChart流程图 与上 ...
随机推荐
- Luogu4770 NOI2018 你的名字 SAM、主席树
传送门 UPD:发现之前被smy误导的一个细节,改过来之后就AC了-- 一道比较套路的SAM题,虽然我连套路都不会-- 先考虑前\(68pts\),也就是\(l=1 , r=|S|\)的情况.我们对\ ...
- git 提交新增文件到网站
git add -A 是将所有的修改都提交.你可以用git status查看当前的变化,然后通过git add xxx有选择的提交.git commit 是将变化先提交到本地.git commit - ...
- Luogu P1546 最短网络 Agri-Net
其实这道题根本没必要写,但为了测试vector+堆优化的Prim试一发. 再次觉得Prim和Dijkstra很像,堆优化版本也差不多. 和Dijkstra一样,Prim也是在之前的dis点中选取一个最 ...
- Opencv 2.4.10 +VS2010 项目配置
资料来源:http://blog.csdn.net/scottly1/article/details/40978625
- testNG-失败用例重跑方法探究
实现IRetryAnalyzer类,重写其中的retry方法public class TestNGRetry implements IRetryAnalyzer { private int retry ...
- 以太坊remix-ide本地环境搭建
remix-ide简介 remix-ide是一款以太坊官方solisity语言的在线IDE,可用于智能合约的编写.测试与部署,不过某些时候可能是在离线环境下工作或者受限于网速原因,使用在线remi ...
- 如何利用Android Studio打包React Native APK
ok!百度出来的东西很杂,所以,这里介绍一种最简单,最合适我们(新手,应该是吧)的APK的打包方式! 当然!这种打包是基于Android Studio的,所以,注意喽!!!! 废话不多说开始吧! 首先 ...
- #个人作业Week2——结对编程对象代码复审
General 代码能够正确运行,能够正确生成指定数量的题目和答案,并且能够对给出的题目和答案文件进行比对,输出结果. 代码没有非常复杂的逻辑,比较容易理解,但是在缺少注释的情况下有部分代码需要较长时 ...
- 【BUAA软件工程】第一次阅读作业
BUAA软件工程 第一次阅读作业 项目 内容 这个作业属于哪个课程? 北航软工 这个作业的要求在哪里? 第一次个人作业 我在这个课程的目标是? 学习高效严谨的软件工程开发过程,建立团队意识 这个作业在 ...
- 《Linux内核分析》第六周笔记 进程的描述和进程的创建
进程的描述和进程的创建 一.进程的描述 1.进程描述符task_struct数据结构(一) 操作系统的三大功能:进程管理(核心).内存管理.文件系统. 进程控制块PCB——task_struct(进程 ...