用字典存储数据

可以随时返回上一级,随时退出程序

只能用循环判断等内置方法,不得导入模块

menu = {
'广东':{
'广州':{
'越秀区':{
'面积':'33.80',
'人口':'115万',
'邮政编码':'510030',
'区政府驻地':'越华路183号',
'行政代码':'440104'
},'天河区':{
'面积':'96.33',
'人口':'143万',
'邮政编码':'510630',
'区政府驻地':'天府路1号',
'行政代码':'440106'
},'荔湾区':{
'面积':'59.10',
'人口':'89万 ',
'邮政编码':'510145',
'区政府驻地':'中山七路328号',
'行政代码':'440103'
}
},
'深圳':{
'福田区':{
'面积':'78.66',
'常住人口':'135.71',
'户籍人口':'83.35',
'非户籍人口':'52.36',
'邮政编码':'518000'
},'罗湖区':{
'面积':'78.76',
'常住人口':'95.37',
'户籍人口':'55.92',
'非户籍人口':'39.46',
'邮政编码':'518001'
}
} },
'湖北':{
'武汉':{
'硚口区':{
'行政代码':'420104',
'面积':'41.9',
'常住人口':'64万',
'邮政编码':'430000',
'政府驻地':'荣华街道沿江大道518号'
},'江岸区':{
'行政代码':'420102',
'面积':'64.24',
'常住人口':'121万',
'邮政编码':'430014 ',
'政府驻地':'四唯街道六合路1号'
}
},
'黄石':{
'大冶市':{
'面积':'1566.3',
'人口':'95.9万(2014年)',
'政府驻地':'东岳路街道湛月路'
},'阳新县':{
'面积':'2780',
'人口':'105.94万(2014年) ',
'政府驻地':'兴国镇儒学路'
}
} }
}

  

dynamic_menu = menu  #实现动态循环菜单
last_meny_list = [] #保存所有的父级层的值,最好一个为当前层的上一层 while True:
#循环打印出当前菜单的所有key
for key in dynamic_menu:
print(key)
choice = input('>>>:').strip()
if len(choice) == 0:continue #如果没有输入则不执行以下代码,节约资源
if choice in dynamic_menu: #判断输入的值是否在所选范围
last_meny_list.append(dynamic_menu) #记录上一层的值存到列表 ,为了实现随时返回上一层功能
dynamic_menu = dynamic_menu[choice] #动态改成下一层的值
elif choice == '9': #返回上一层
if last_meny_list:
dynamic_menu = last_meny_list.pop()
elif choice == '886': #退出循环
break
else:
print('无此项'.center(20,'*'))
print('bye'.center(30,'/'))

  

[作业] Python入门基础--三级菜单的更多相关文章

  1. [作业] Python入门基础---购物车小程序

    1.购物车小程序: 1.1用户输入工资取60% 1.2打印输出商品菜单 1.3由用户输入数字选择 #__author:Mifen #date: 2018/11/27 # 购物车程序 #把工资作为账户的 ...

  2. [作业] Python入门基础--用户登陆

    让用户输入用户名密码 认证成功后显示欢迎信息 输错三次后锁定登陆 #__author:Mifen #date: 2018/11/28 import time #自定义本地用户名和密码 user_nam ...

  3. [作业] Python入门基础--猜年龄

    age = 20 while True: try: guess_age = int(input('guess age:')) if guess_age > age: print('Is bigg ...

  4. [作业] Python入门基础---九九乘法表

    1.while 循环 : x = 1 while x < 10: y = 1 while y <=x: print('%d*%d=%2d' % (y,x,x*y),end = '\t') ...

  5. Python 入门基础6 --字符编码、文件操作1

    今日内容: 1.字符编码 2.字符与字节 3.文件操作 一.字符编码 了解: cpu:将数据渲染给用户 内存:临时存放数据,断电消失 硬盘:永久存放数据,断电后不消失 1.1 什么是编码? 人类能够识 ...

  6. Python入门基础学习 三

    Python入门基础学习 三 数据类型 Python区分整型和浮点型依靠的是小数点,有小数点就是浮点型. e记法:e就是10的意思,是一种科学的计数法,15000=1.5e4 布尔类型是一种特殊的整形 ...

  7. Python入门基础学习 二

    Python入门基础学习 二 猜数字小游戏进阶版 修改建议: 猜错的时候程序可以给出提示,告诉用户猜测的数字偏大还是偏小: 没运行一次程序只能猜测一次,应该提供多次机会给用户猜测: 每次运行程序,答案 ...

  8. Python入门基础学习 一

    Python入门基础学习 一 Python下载及安装 下载地址:https://www.python.org/,选择最新的版本下载 稍等一会,安装完成. 简单语句 从idle启动Python:IDLE ...

  9. python练习_三级菜单

    python练习_三级菜单 需求: 做一个地区查询三级菜单,输入一级能够打印下一级 在第三级个第二级输入e可以返回上一级 在任意一级输入q则退出程序 以下代码实现的功能与思路: 功能: (1)通过In ...

随机推荐

  1. Bad Day -- Daniel Powter

                                     Bad Day Bad Day (坏天气) 来自 Daniel Powter -- 2005年MTV欧洲音乐奖提名最佳新人, 出自专辑 ...

  2. FP-Growth in Spark MLLib

    并行FP-Growth算法思路 上图的单线程形成的FP-Tree. 分布式算法事实上是对FP-Tree进行分割,分而治之 首先,假设我们只关心...|c这个conditional transactio ...

  3. navicat远程连接oracle

    本机没有oracle,这个软件太大了. 想要远程连接oracle,本地不安装oracle的话是不行的,我们安装一个oracle instance client,然后配置navicat就ok了. 下载i ...

  4. 手动处理TFS数据仓库服务和分析服务

    当您需要报告中最新的数据时,当发生错误时,或者在解决了模式冲突之后,您可以手动处理Team Foundation Server(TFS)关系数据库(TFSHStor)或SQLServer Analys ...

  5. linux系统编程之文件与IO(一):文件描述符、open,close

    什么是IO? 输入/输出是主存和外部设备之间拷贝数据的过程 设备->内存(输入操作) 内存->设备(输出操作) 高级I/O ANSI C提供的标准I/O库称为高级I/O,通常也称为带缓冲的 ...

  6. Alwayson--问题总结一

    1. Alwayson 是否依赖于域环境? 答: 是, alwayson依赖于故障转移群集(只有在故障转移群集中的SQL Server 才能启动高可行性组功能),而故障转移群集愈依赖于域环境. 2. ...

  7. nginx优化笔记(keepalive、https等)

    一.nginx之tcp_nopush.tcp_nodelay.sendfile 1.TCP_NODELAY你怎么可以强制 socket 在它的缓冲区里发送数据?一个解决方案是 TCP 堆栈的 TCP_ ...

  8. dorado-SplitSpanel控件

    1.这是一个界面布局控件 2.分为SideControl边区域和MainControl主区域 3.常用属性 3.1 collapsed:打开页面时,边区域是否显示 3.2 position:边区域占总 ...

  9. 初识WebAPI

    (一)Web API简介: 目前使用Web服务的三种主流的方式是:远程过程调用(RPC),面向服务架构(SOA)以及表征性状态转移(REST),其中REST模式的Web服务与复杂的SOA和RPC对比来 ...

  10. 4月第4周业务风控关注 | 网络犯罪经济每年1.5万亿美元 GDP居全球第12位

    本文由  网易云发布. 易盾业务风控周报每周呈报值得关注的安全技术和事件,包括但不限于内容安全.移动安全.业务安全和网络安全,帮助企业提高警惕,规避这些似小实大.影响业务健康发展的安全风险. 1.网络 ...