Python学习之三级菜单
Python经典练习题 - 三级菜单
需求:
可依次选择进入各子菜单
可从任意一层往回退到上一层
可从任意一层退出程序
示例代码:
# -*- coding: utf-8 -*-
menu = {
'北京':{
'海淀':{
'五道口':{
'soho':{},
'网易':{},
'google':{}
},
'中关村':{
'爱奇艺':{},
'汽车之家':{},
'youku':{},
},
'上地':{
'百度':{},
},
},
'昌平':{
'沙河':{
'老男孩':{},
'北航':{},
},
'天通苑':{},
'回龙观':{},
},
'朝阳':{},
'东城':{},
},
'上海':{
'闵行':{
"人民广场":{
'炸鸡店':{}
}
},
'闸北':{
'火车站':{
'携程':{}
}
},
'浦东':{},
},
'山东':{},
}
loop = menu #定义一个临时字典loop
n = [] #定义一个空列表来存储上一次选择后的查询结果
while True:
for i in enumerate(loop):
print(i[1])
select = input("请选择:").strip()
if select in loop: #如果输入信息在临时字典loop中
n.append(loop)
loop = loop[select]
elif select == 'b':
if n:
loop = n.pop()
else:
print("----已经到顶啦!----")
elif select == 'q':
break
else:
print("----输入错误,请重试!----")
continue
值得一提的是,此处利用列表来存储上一次选择后的查询结果很好。
Python学习之三级菜单的更多相关文章
- python练习_三级菜单
python练习_三级菜单 需求: 做一个地区查询三级菜单,输入一级能够打印下一级 在第三级个第二级输入e可以返回上一级 在任意一级输入q则退出程序 以下代码实现的功能与思路: 功能: (1)通过In ...
- (转)Python字典实现三级菜单
Python字典实现三级菜单 原文:https://www.cnblogs.com/pyramid1001/p/5803294.html 1 ############################# ...
- python 购物车和三级菜单
程序:购物车程序 需求: 启动程序后,让用户输入工资,然后打印商品列表 允许用户根据商品编号购买商品 用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 可随时退出,退出时,打印已购买商品和余额 ...
- python day1 之三级菜单的正确姿势
看了几个同学有关三级菜单的实现,都是通过一级一级输出,是较为过程的实现.另外如果菜单(树形结构)更多级这样处理起来就比较麻烦了. 可以使用python强大的列表和字典,实现的更优美或简洁一些: 注:复 ...
- Python 实例3—三级菜单
老男孩培训学习: ''' Author:Ranxf ''' menu = { '北京': { '海淀': { '五道口': { 'soho': {}, '网易': {}, 'google': {} } ...
- python作业:三级菜单(第一周)
一.作业需求: 1. 运行程序输出第一级菜单 2. 选择一级菜单某项,输出二级菜单,同理输出三级菜单 3. 菜单数据保存在文件中 4. 让用户选择是否要退出 5. 有返回上一级菜单的功能 二.三级菜单 ...
- Python字典实现三级菜单
################################################ # Task Name: 三级菜单 # # Description:打印省.市.县三级菜单 # # 可 ...
- python 小程序—三级菜单—循环和字典练习
程序中利用多级字典来存储三级菜单, 通过一系列while循环和for循环,实现了三级菜单的查询,选择,退回上级菜单,退出程序几个功能. 缺点:程序语句过于重复,效率低. #-*-coding:utf- ...
- Python 练习:三级菜单选择城市(二)
优化了上一个三级菜单选择城:http://www.cnblogs.com/klvchen/p/8646466.html info = { 'GuangDong':{ 'GuangZhou': ['Ti ...
随机推荐
- Python源码读后小结
Python 笔记 前言(还是叫杂记吧) 在python中一切皆对象, python中的对象体系大致包含了"类型对象", "Mapping对象(dict)", ...
- HDU 5340——Three Palindromes——————【manacher处理回文串】
Three Palindromes Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others ...
- JS 类似contains方法,用indexOf实现
js提供了另一个方法indexOf: str.indexOf("substr") != -1; 如果上面这个表达式为true,则包含,反之则不包含.
- case when then[转]
Case具有两种格式.简单Case函数和Case搜索函数. --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END ...
- Redis入门--(二)Jedis的入门
Jedis相应的jar包 编写一段程序来测试一下 1.新建一个Java的项目 2.引入jedis开发包 3.将包添加到构建路径中 4.创建一个测试类 5.创建一个Jedis的单实例的测试
- JAVA ------ 大牛
李学凯 :http://blog.csdn.net/qq_27093465/article/details/51750535 码农场:http://www.hankcs.com/program/ 徐刘 ...
- Vue编译时写在style中的路径问题
写在vue文件里面的style样式,在添加例如背景图片的时候,如果用的是相对路径,那么build出来的css文件的路径将会出错,导致找不到图片. 通过查找资料,在https://segmentfaul ...
- Android getRunningTasks和getRunningAppProcesses失效
Android 5.0以上的getRunningTasks失效,该方法可以获得在前台运行的系统进程.可以用getRunningAppProcesses方法暂时替代. android6.0以上的getR ...
- Java—字符串
字符串 在java中,字符串被作为String类型的对象处理.String类位于java.lang包中,默认情况下,该包被自动导入所有的程序. 创建String对象的方法: String s1 = & ...
- 监控系统 - mk-livestatus
/usr/bin/unixcat /usr/lib64/check_mk/livestatus.o /etc/xinetd.d/livestatus service livestatus { type ...