【Pthon入门学习】多级菜单小例子
1 menu_list = { 2 '北京':{ 3 '昌平':{ 4 '回龙观':{ 5 '和谐家园':{}, 6 '矩阵小区':{}, 7 '北店家园':{} 8 }, 9 '沙河':{ 10 '北街家园1区':{}, 11 '北街家园2区':{}, 12 '北师大附小':{} 13 } 14 }, 15 '海淀':{ 16 '西二旗':{ 17 '云端时代':{}, 18 '百度':{}, 19 '软件园':{} 20 }, 21 '西三旗':{ 22 '上地五街':{}, 23 '上地三街':{}, 24 '方正集团':{} 25 } 26 } 27 }, 28 '邯郸':{ 29 '丛台区':{ 30 '黄粱梦':{ 31 '东官庄':{}, 32 '王李庄':{} 33 }, 34 '沙河':{ 35 '北街家园1区1':{}, 36 '北街家园2区2':{}, 37 '北师大附小3':{} 38 } 39 }, 40 '复兴区':{ 41 '永年':{ 42 '云端时代1':{}, 43 '百度2':{}, 44 '软件园3':{} 45 }, 46 '肥乡':{ 47 '上地五街1':{}, 48 '上地三街2':{}, 49 '方正集团3':{} 50 } 51 } 52 }, 53 } 54 map_list = [] 55 cur_layer_pos = 0 56 cur_layer_keys = [] 57 cur_layer_keys_values = [] 58 is_exit = False 59 is_not_next = True 60 while not is_exit: 61 if is_not_next: 62 if cur_layer_pos == 0: 63 cur_layer_keys = menu_list.keys() 64 else: 65 cur_layer_keys = map_list[cur_layer_pos - 1][1].keys() 66 67 if len(cur_layer_keys) > 0: 68 is_not_next = True 69 print('可以进入的下一级菜单显示:', list(cur_layer_keys)) 70 else: 71 print("已经到菜单底部啦,只能输入p返回上一级菜单") 72 cur_menu_name = input('请输入菜单名:') 73 if cur_menu_name.lower() == 'p': 74 if cur_layer_pos > 0: 75 map_list.pop() 76 cur_layer_pos -= 1 77 is_not_next = True 78 else: 79 print('已经到顶级菜单啦.') 80 elif cur_menu_name.lower() == 'q': 81 is_exit = True 82 elif cur_menu_name in cur_layer_keys: 83 map_list.append([cur_menu_name, menu_list[cur_menu_name] if cur_layer_pos == 0 else map_list[cur_layer_pos - 1][1][cur_menu_name]]) 84 cur_layer_pos += 1 85 else: 86 if len(cur_layer_keys) > 0: 87 print("请输入正确的菜单名称...") 88 else: 89 is_not_next = False 90 print("已经到菜单底部啦,只能输入p返回上一级菜单") 91 print('当前所在的位置:', [_map[0] for _map in map_list]) 92
View Code
多级菜单的要求如下:
1. 可以依次进入子菜单
2. 任意级菜单均可返回上一级
3. 任意级菜单均可退出程序
主要是锻炼列表和字典数据类型
三级菜单实现可以如下:
http://www.cnblogs.com/bg0131/p/6416816.html
转载于:https://www.cnblogs.com/yongqiangyue/p/8717078.html
【Pthon入门学习】多级菜单小例子相关推荐
- 微信小程序开发入门学习(1):石头剪刀布小游戏
从今天起开始捣鼓小程序了2018-12-17 10:02:15 跟着教程做了第一个入门实例有兴趣的朋友可以看看: 猜拳游戏布局 程序达到的效果 猜拳游戏的布局是纵向显示了三个组件:文本组件(tex ...
- Q-learning学习的一个小例子
强化学习的难点,在于其引入了时间这个维度,不管是有监督还是无监督学习,都是能获得即使反馈,但到了强化学习中,反馈来的没那么及时.在周志华的<机器学习>中,举过一个种西瓜的例子.种瓜有很多步 ...
- 小程序入门学习21--前端小程序开发及数据渲染
完结撒花 再发一遍学习视频地址 1 项目运行图 2 项目github地址 3 一个class内放多个样式,不断累加 <view class='news-title title-words'> ...
- 小程序入门学习16--上传小程序至github
1 配置hosts,使电脑可以访问github 修改hosts(进入hosts方法) 2 注册 进入github,点右上角sign up,填写注册信息 3 创建仓库 点击New,新建仓库 复制HTTP ...
- python初学小甲鱼_Python零基础入门学习 作者:小甲鱼
temp = input('不妨想一想小甲鱼现在心里想的哪一个数字:') guess = int(temp) if guess == 8: print('你是小甲鱼心里的蛔虫吗?') print('哼 ...
- 黑马程序员—GUI(菜单)小例子
------- <a href="http://www.itheima.com" target="blank">android培训</a> ...
- SpringBoot+uniapp+uview打造H5+小程序+APP入门学习的聊天小项目
JavaDog Chat v1.0.0 基于SpringBoot+uniapp简单通讯聊天软件
- CAD入门学习教程:什么是截取大样?有什么用?
有些刚开始进行CAD入门学习的小伙伴在使用正版CAD软件绘制建筑图纸的过程中,由于对建筑CAD命令了解的不是很清楚,不知道什么是截取大样.那么今天的CAD入门学习教程小编就来给大家介绍一下国产CAD软 ...
- 从一个小例子看贝叶斯公式的应用(学习简单、基础、入门的例子)
#从一个小例子看贝叶斯公式的应用 ###应用Bayesian公式考察如下的实例并回答问题. 张某为了解自己患上了X疾病的可能性,去医院作常规血液检查.其结果居然为阳性,他赶忙到网上查询.根据网上的资料 ...
最新文章
- jQuery效果:隐藏、显示、切换、滑动、淡入淡出、动画
- js实现图片轮播(终结版)
- MongoDB 查询时间差问题修复
- Gym - 101972H Beautiful Substrings(思维+模拟)
- linux的文件io操作(转)
- java注释修改_java – 使用注释修改方法
- 李彦宏:“最后一公里”的自动驾驶会提前实现
- mobaxterm下载与使用mobaxterm远程登录Linux
- mysql 建表sysdate_mysql数据库基本操作练习
- Windows下的Tomcat7安装与环境配置
- 魔兽世界 助手 无法连接服务器,魔兽世界助手8.1无法登陆
- python命名空间与作用域
- 【MQ-3 酒精检测器与 Arduino检测酒精】
- EI会议论文,第二届云计算、大数据与数字经济国际学术会议最终截稿倒计时10天
- 牛客2019跨年AK场
- Activiti7学习笔记、非常详细 | 进阶篇
- 几种常用的数据校验方式
- 新手:MySQL 左连接 右连接 内连接 全外连接查询数据
- element表单校验输入框手动清空时出现XXX is required提示
- Golang编程基础第一篇——Golang快入门