#-*- 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三级菜单的更多相关文章

  1. python三级菜单实例(傻瓜版和进阶版)

    程序: python三级菜单 要求: : 1.打印省.市.县三级菜单 2.可返回上一级 3.可随时退出程序 方案一:傻瓜版(其实傻瓜版考察的主要是思路!思路清楚了,那才不是傻瓜!O(∩_∩)O哈哈~) ...

  2. python(5)- 简单练习:python三级菜单优化

    python三级菜单优化,菜鸟版链接:http://www.cnblogs.com/xuyaping/p/6648170.html menu = { '北京':{ '海淀':{ '五道口':{ 'so ...

  3. python三级菜单的实现

    一.作业要求 1.使用字典实现三级菜单功能 2.直接输入前面数字进入下一级菜单 3.按B返回上一级,按Q退出 二.需要知识点 1.if循环 2.for循环,enumerate的用法 3.while循环 ...

  4. python 三级菜单 while循环三次,湖北省市-县-街道的选择,3个while的循环 -day2

    python编写一个三级while的循环菜单 1.定义字典,字典里面嵌套字典,内嵌字典的值为列表. 思路: 湖北省的市:字典中的定义3个字典,用于存储{序列-键:市名} shiqu_dir = {} ...

  5. Python 三级菜单 增强版

    需要实现的功能是:三级菜单1.从文本内读出选项2.查询每一级的选项,并能对选项进行增/删/改功能3.每一级可以退出程序或者返回上一层 2018-5-14 更新内容 思路 实现过程中的BUG及解决方案: ...

  6. Python 三级菜单与优化(一层循环嵌套)

    优化的思路是使用单层循环嵌套完成三级菜单,这个优化思路我非常喜欢,我喜欢在编程的时候用最少的东西写出同样的效果,通常这样会绕来绕去,但非常有趣!!! 需求: 1.运行程序输出第一级菜单: 2.选择一级 ...

  7. Python——三级菜单

    #三级菜单函数 menu = { '北京':{ 海淀:{ '五道口':{} '中关村':{} '上帝':{} } '昌平':{} '朝阳':{} '东城':{} }, '上海':{} '山东':{} ...

  8. 4th,Python三级菜单

    1. 运行程序输出第一级菜单 2. 选择一级菜单某项,输出二级菜单,同理输出三级菜单 3. 菜单数据保存在文件中 4. 让用户选择是否要退出 5. 有返回上一级菜单的功能 data = { '北京': ...

  9. [terry笔记]python三级菜单

    把三级菜单输出,选择后逐层显示,”b“返回上一级菜单. menu = { '北京':{ '海淀':{ '五道口':{ 'soho':{}, '网易':{}, 'google':{} }, '中关村': ...

随机推荐

  1. Linux下查看文件属性

    1.ls ls -a 查看所有文件,就是包含隐藏文件 ls -l 查看详细的属性,包括文件类型(d表示目录,-表示普通文件,l表示链接文件),文件的权限(所有者权限,所属组权限,其他人权限),所有者, ...

  2. 优秀的富文本编辑器 Kindeditor

    <textarea name="txtbody" style="width:100%;height:320px;" > {$article.txt} ...

  3. JavaScript API 设计原则

    网+线下沙龙 | 移动APP模式创新:给你一个做APP的理由>> 好的 API 设计:在自描述的同时,达到抽象的目标. 设计良好的 API ,开发者可以快速上手,没必要经常抱着手册和文档, ...

  4. Apache与Nginx的优缺点

    http://weilei0528.blog.163.com/blog/static/206807046201321810834431 Apache与Nginx的优缺点比较 1.nginx相对于apa ...

  5. 学习实践:使用模式,原则实现一个C++自动化测试程序

    个人编程中比较喜欢重构,重构能够提高自己的代码质量,使代码阅读起来也更清晰.但是重构有一个问题,就是如何保证重构后带代码实现的功能与重构前的一致,如果每次重构完成后,对此不闻不问,则会有极大的风险,如 ...

  6. [leetcode]_Binary Tree Inorder Traversal

    题目:二叉树的中序遍历. 思路:用递归来写中序遍历非常简单.但是题目直接挑衅说,----->"Recursive solution is trivial".好吧.谁怕谁小狗. ...

  7. kettle的hello world

    本篇介绍使用kettle的一个最简单的例子,可以初步了解下转换. 需求是这样的: 存在一个本地csv文件,文件的内容如下 现在需要将csv中的数据保存到本地的文本文件中 1.创建一个转换,并且重命名 ...

  8. Spark提交任务到集群

    提交Spark程序到集群与提交MapReduce程序到集群一样,首先要将写好的Spark程序打成jar包,再在Spark-submit下通过命令提交. Step1:打包程序 Intellij IDEA ...

  9. MinGW编译wxWidgets中的问题及解决方法

    其实网上wxWidgets编译相关的博文,都没写到关键点上,泛泛而谈——就写了执行几个命令,就万事大吉了! 维基百科上的这个页面讲解了编译中可能遇到的各种问题及解决办法.比较懒,不想翻译.wxWidg ...

  10. php验证手机号码

    大家都应该有这个常识,中国的手机号码都是以数字“1”开头,然后利用“0~9”10个数字组成的11位数字组合,那么我们的验证规则肯定要根据这个思路来写. 根据上面的简单思路,我们便可以写下以下的验证代码 ...