python三级菜单
#-*- coding:utf-8 -*-
#Author:gxli #一级菜单项
def menu():
#遍历字典dic一级菜单
print('-----------一级菜单----------------')
for index,key in enumerate(dic.keys(),1):
print(index,key)
##将一级key的下标与key放入临时字典中
dic_key[str(index)]=key
choose = input("请选择1级菜单!退出输入 q ,返回请输入 b :")
#判断输入,输入q时退出,输入b时提示无法返回
if choose == 'q':
quit()
elif choose == 'b':
print('目前为一级目录,无法返回!请重新选择!')
return
#判断用户输入是否在临时字典的key中,若有调用二级菜单
elif dic_key.get(choose,0):
menu_1(dic_key[choose])
else:
print('')
print('您的输入有误,请重新输入!') #二级菜单项
def menu_1(choose1):
#输入有误时重新加载二级菜单项
while True:
print('')
print('-----------二级菜单----------------')
# 遍历字典dic二级菜单
for index,key in enumerate(dic[choose1].keys(),1):
print(index,key)
##将二级key的下标与key放入临时字典中
dic_key[str(index)] = key
choose2 = input("请选择2级菜单!退出输入 q ,返回请输入 b :")
# 判断输入,输入q时退出,输入b时调用1级菜单
if choose2 == 'q':
quit()
elif choose2 == 'b':
menu()
elif dic_key.get(choose2, 0):
menu_2(choose1, dic_key[choose2])
else:
print('')
print('您的输入有误,请重新输入!') #三级菜单项
def menu_2(choose1, choose2):
#输入有误时重新加载三级菜单项
while True:
# 遍历字典dic三级菜单
print('')
print('-----------三级菜单----------------')
for index,key in enumerate(dic[choose1][choose2],1):
#显示key与key的下标
print(index,key)
#将三级key的下标与key放入临时字典中
dic_key[str(index)] = key
choose3 = input("请选择3级菜单!退出输入 q ,返回请输入 b :")
# 判断输入,输入q时退出,输入b时调用1级菜单
if choose3 == 'q':
quit()
elif choose3 == 'b':
menu_1(choose1)
else:
print('')
print('您的输入有误,请重新输入!') if __name__ == '__main__':
# 设置菜单
dic = {
"动物": {
"狗": ["大狗", "小狗"],
"猫": ["大猫", "小猫"]
},
"植物": {
"树": ["大树", "小树"],
"花": ["大花", "小花"]
}
}
dic_key = {} while True:
menu()
python三级菜单的更多相关文章
- python三级菜单实例(傻瓜版和进阶版)
程序: python三级菜单 要求: : 1.打印省.市.县三级菜单 2.可返回上一级 3.可随时退出程序 方案一:傻瓜版(其实傻瓜版考察的主要是思路!思路清楚了,那才不是傻瓜!O(∩_∩)O哈哈~) ...
- python(5)- 简单练习:python三级菜单优化
python三级菜单优化,菜鸟版链接:http://www.cnblogs.com/xuyaping/p/6648170.html menu = { '北京':{ '海淀':{ '五道口':{ 'so ...
- python三级菜单的实现
一.作业要求 1.使用字典实现三级菜单功能 2.直接输入前面数字进入下一级菜单 3.按B返回上一级,按Q退出 二.需要知识点 1.if循环 2.for循环,enumerate的用法 3.while循环 ...
- python 三级菜单 while循环三次,湖北省市-县-街道的选择,3个while的循环 -day2
python编写一个三级while的循环菜单 1.定义字典,字典里面嵌套字典,内嵌字典的值为列表. 思路: 湖北省的市:字典中的定义3个字典,用于存储{序列-键:市名} shiqu_dir = {} ...
- Python 三级菜单 增强版
需要实现的功能是:三级菜单1.从文本内读出选项2.查询每一级的选项,并能对选项进行增/删/改功能3.每一级可以退出程序或者返回上一层 2018-5-14 更新内容 思路 实现过程中的BUG及解决方案: ...
- Python 三级菜单与优化(一层循环嵌套)
优化的思路是使用单层循环嵌套完成三级菜单,这个优化思路我非常喜欢,我喜欢在编程的时候用最少的东西写出同样的效果,通常这样会绕来绕去,但非常有趣!!! 需求: 1.运行程序输出第一级菜单: 2.选择一级 ...
- Python——三级菜单
#三级菜单函数 menu = { '北京':{ 海淀:{ '五道口':{} '中关村':{} '上帝':{} } '昌平':{} '朝阳':{} '东城':{} }, '上海':{} '山东':{} ...
- 4th,Python三级菜单
1. 运行程序输出第一级菜单 2. 选择一级菜单某项,输出二级菜单,同理输出三级菜单 3. 菜单数据保存在文件中 4. 让用户选择是否要退出 5. 有返回上一级菜单的功能 data = { '北京': ...
- [terry笔记]python三级菜单
把三级菜单输出,选择后逐层显示,”b“返回上一级菜单. menu = { '北京':{ '海淀':{ '五道口':{ 'soho':{}, '网易':{}, 'google':{} }, '中关村': ...
随机推荐
- WP_图片管理机制/异步读取网络图片
项目有这样的需求, 要求窗口加载一揽子图片,为了不让UI阻塞太久,采用异步读取后绑定显示的方案. 图片的下载应该采用并发的过程(等待网络响应会很耗时,一张一张的下载,等待时间太长) 图片的下载不能占用 ...
- HBase优化
1.hbase的balance策略是region数量策略,即维持每个regionserver的region数量基本一致,这并未考虑一个table的region可能都落到一个refionserver的不 ...
- CentOS6.5下安装配置MySQL
CentOS6.5下安装配置MySQL,配置方法如下: 安装mysql数据库:# yum install -y mysql-server mysql mysql-deve 查看mysql-server ...
- C# DataGridViewComboBoxColumn 数据绑定
dataGridView1.Columns.Clear(); dataGridView1.AutoGenerateColumns = false; dataGridView1.DataSource = ...
- javascript中match和RegExp组合用法
function getCookie(name)//取cookies函数 { //coook中document.cookie = "age=12; name=1.css"; var ...
- 登录成功返回登录前页面js代码
/*------ setCookie(name,value) -----------*/ function setCookie(name,value) { var Days = 30; //此 coo ...
- 最新hosts,更新hosts,可用
点击这里,全选后复制,粘贴到C:\Windows\System32\drivers\etc的hosts里面,把原来的置换了
- 【easuyi】---easyui中的验证validatebox自定义
这里比较简单的使用就不再多说,主要说一下自定义的validatebox. 1.验证密码是否相等,这个直接参考给定的列子就行,这里主要学习这种灵活使用的方式和方法. <input id=" ...
- C# 添加系统计划任务方案
你可以在Windows 计划任务管理器里面添加计划任务,调试OK后导出XML文件,然后在要部署的计算机上执行CMD导入命令,把计划任务信息配置导入到服务器上的计划任务列表中,命令如下: SCHTASK ...
- ARM时钟初始化
2440: S3C2440可以使用外部晶振(XTIpll)(默认为12MHZ)和外部时钟(EXTCLK)两种方式输入时钟信号.它由跳线OM[3:2]决定.S3C2440 默认的工作主频为12MHz(晶 ...