用字典存储数据

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

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

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. [leetcode] 20. Valid Sudoku

    这道题目被放在的简单的类别里是有原因的,题目如下: Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules. ...

  2. OpenDiscussion_DataDrivenDesign

    本文源于公司内部技术交流,如有不当之处,还请指正. Content: 1. What is Data-driven design? 2. WPF revolution. 3. More about O ...

  3. HTML/HTML5

    HTML/HTML5 一.文档加载顺序. 文档入下,数字编号为加载顺序. <html><!--1--> <head><!--2--> <link ...

  4. jQuery截取字符串、日期字符串转Date、获取html中的纯文本

    jQuery截取字符串.日期字符串转Date.获取html中的纯文本. var com = com || {}; (function ($, com) { /* * 截取字符串 * @param st ...

  5. WP8里dll类库(SDK)实现多语言多主题

    近日在做一个sdk项目,因为要实现多语言切换,单独类库多语言这方面的实现不是很多,故整理如下. 1.添加AppResource.resx(英文)和AppResource-zh-CN.resx 假设我们 ...

  6. webapi token、参数签名是如何生成的(转载)

    API接口保障安全性原则:1.有调用者身份2.请求的唯一性3.请求的参数不能被篡改4.请求的有效时间 在刚接触接口开发时,可能脑子里压根就没有这个接口调用安全性的原则,但常识性的经验告诉我们,每一个请 ...

  7. asp.net core读取appsetting.json文件

    1.在Startup.cs文件中注入,ConfigureServices方法 services.Configure<MyConfig>(Configuration.GetSection(& ...

  8. Ubuntu16.04 - 安装RabbitVCS,linux下的TortoiseSVN!!!

    RabbitVCS 官网:http://rabbitvcs.org/ 1,添加PPA源.在shell里面执行下面命令: sudo add-apt-repository ppa:rabbitvcs/pp ...

  9. FreePascal - CodeTyphon交叉编译,在一个操作系统生成各个操作系统可以运行的程序!

    致谢:[XE3]MN,让我加快完成了使用CodeTyphon进行交叉编译! CodeTyphon版本: 6.0 下载:http://www.pilotlogic.com/codetyphon/zips ...

  10. 4、Orcal数据库dmp文件导入

    1.CMD命令导入备份数据库dmp文件: 以上一篇博客提到的gdnh用户,我们需要在cmd窗口执行如下命令: imp gdnh/admin123@orcl file=E:/createTable.dm ...