python实战演练(二)三级菜单
一.实现功能
1. 运行程序输出第一级菜单
2. 选择一级菜单某项,输出二级菜单,同理输出三级菜单
3. 菜单数据保存在文件中
4. 让用户选择是否要退出
5. 有返回上一级菜单的功能
二,流程图
#-*- Coding:utf-8 -*- # Author: kking ''' 作业需求: 1. 运行程序输出第一级菜单 2. 选择一级菜单某项,输出二级菜单,同理输出三级菜单 3. 菜单数据保存在文件中 4. 让用户选择是否要退出 5. 有返回上一级菜单的功能 '''import sys data = {'海贼王':{'草帽海贼团':{'路飞':{'果实能力':'橡胶果实','霸气':['武装色霸气','见闻色霸气','霸王色霸气'],'男':21},'索罗':{'果实能力':'无','霸气':['武装色霸气','见闻色霸气'],'男':24},'香吉士':{'果实能力':'无','霸气':['武装色霸气','见闻色霸气'],'男':23},},'七武海':{'波雅汉库克':{'果实能力':'甜甜果实','霸气':['武装色霸气','见闻色霸气','霸王色霸气'],'女':20},'鹰眼米霍克':{'果实能力':'无','霸气':['武装色霸气','见闻色霸气'],'男':26},'小丑巴基':{'果实能力':'分裂果实','霸气':'无','男':25},},'四皇':{'香克斯':{'果实能力':'未知','霸气':['武装色霸气','见闻色霸气','霸王色霸气'],'男':28},'黑胡子':{'果实能力':'黑暗果实','霸气':['武装色霸气','见闻色霸气'],'男':28},'凯多':{'果实能力':'未知','霸气':['武装色霸气','见闻色霸气'],'男':28},},},'妖精的尾巴':{'灭龙魔导师':{'纳兹':{'属性能力':'火之灭龙魔法','男':21,},'伽吉鲁':{'属性能力':'铁之灭龙魔法','男':23,},'温蒂':{'属性能力':'天之灭龙魔法','女':18,},},'超S魔导师':{'吉尔达斯':{'属性能力':'粉碎','男':28},'艾璐萨':{'属性能力':'变装魔法','女':26},'米拉杰':{'属性能力':'变成撒旦','女':27},},'六魔将':{'深夜':{'属性能力':'扭曲空间','男':24},'克布拉':{'属性能力':'毒之灭龙魔法','男':24},'安吉拉':{'属性能力':'召唤星灵','女':22},},},'火影':{'木叶村':{'宇智波.鼬': {'属性能力':'万花筒写轮眼','男':26},'日向雏田': {'属性能力':'白眼','女':24},'我爱罗': {'属性能力':'砂纸守鹤','男':24},},'晓':{'佩恩':{'属性能力':'轮回眼','男':28},'鬼鲛':{'属性能力':['水遁','鲛肌'],'男':28},'迪达拉':{'属性能力':['黏土炸弹','自爆'],'男':28}},'代目':{'初代':{'姓名':'千手柱间','属性能力':'树诞降临','男':99999},'三代':{'姓名':'猿飞','属性能力':['土流大河','召唤猿魔'],'男':64},'四代':{'姓名':'波风水门','属性能力':['飞雷神之术','螺旋丸'],'男':34},},}, } def _exit(): #定义一个退出循环打印查询结果函数print('*********查询结果*******')for query_result in query_results:print(query_result)sys.exit('退出程序')query_results = [] #定义一个空列表,用来储存查询结果 for d1 in data: #首先遍历第一级菜单并打印print(d1) while True: #循环第一级菜单,如果用户输入内容错误或为空则给出提示,直到为True执行第二层菜单循环choices = input('请选择漫画>>>:')if choices in data: #判断用户输入内容是否包含在第一层菜单内while True: #循环第二级菜单,如果用户输入内容错误或为空则给出提示,直到为True执行第三层菜单循环for d2 in data[choices]: #遍历第二级菜单并打印print('\t',d2)choices2 = input('请选择下级菜单>>>:')if choices2 in data[choices]: #判断用户输入内容是否包含在第二层菜单内while True: #循环第三级菜单,如果用户输入内容错误或为空则给出提示,直到为True执行最后一层循环for d3 in data[choices][choices2]: #遍历第三级菜单并打印print('\t\t\t',d3)choices3 = input('请选择动漫人物>>>:')if choices3 in data[choices][choices2]: #判断用户输入内容是否包含在第三层菜单内query_results.append(choices3) #将choices3的值存入 query_results列表中for result in data[choices][choices2][choices3].items(): #循环遍历第三级菜单参数query_results.append(result) #根据用户输入choices3为键,找到相应的值,# 存入query_results列表中并打印print(result)user_goon = input('是否继续查询>>>? q:退出查询')if user_goon != 'q': #判断用户是否继续查询,如结果不为q则用户继续选择想要查询的人物passelse: #判断用户是否继续查询,如结果为q则退出整个循环 _exit()elif choices3 == '' or choices3 == ' ': #判断用户输入的choices3内容是否为空print("输入不能为空")elif choices3 == 'b': #判断用户输入内容是否为返回上一级菜单breakelif choices3 =='q': #判断用户输入内容是否为q _exit()else: #判断用户输入内容是否存在print('人物不存在请重新输入')elif choices2 == '' or choices2 == ' ':print("输入不能为空")elif choices2 == 'q':_exit()elif choices2 == 'b':breakelse:print('菜单不存在请重新输入')elif choices == '' or choices == ' ':print("输入不能为空")elif choices == 'q':_exit()else: print('漫画不存在请重新输入')
View Code
转载于:https://www.cnblogs.com/kking-lh/p/9983689.html
python实战演练(二)三级菜单相关推荐
- 第一天作业二 三级菜单的实现
第一天作业二 三级菜单的实现 这个作业花了一定的时间,主要是卡在循环时显示不同的问题. #!/usr/bin/env python # -*-conding:utf-8-** # __Author__ ...
- Python练习_三级菜单
打印省.市.县三级菜单 可返回上一级 可随时退出程序 用递归实现:menu = {'北京': {'海淀': {'五道口': {'soho': {},'网易': {},'google': {}},'中关 ...
- python实现一个三级菜单
要求 1.可以一层一层的进入到所有层 2.可以在每一层返回上一层 3.可以在任意层退回主菜单 '''^....0^ .1 ^1^.. 011.^ 1.0^ 1 ^ ^0.11 ^ ^..^0. ^ 0 ...
- jQuery 三级菜单
在写这个的时候,首先要捋顺思路.点一个菜单的时候,其他的要闭合,点一级菜单的时候,二三级菜单要闭合,等等. 大致代码如下: <body><aside><ul class= ...
- python编写登录接口与三级菜单小程序
一:登录接口 编写思路 python登录接口登录三次失败锁定: 一:建一个数据库文件保存用户名和密码,用来判断用户是否存在 二:用户锁定文件,当用户登录三次错误后记录用户信息进入锁定文件,下次登录时就 ...
- python学习(10)字典学习,写一个三级菜单程序
学习了字典的应用.按老师的要求写一个三级菜单程序. 三级菜单程序需求如下: 1.深圳市的区--街道--社区---小区4级 2.建立一个字典,把各级区域都装进字典里 3.用户可以从1级进入2级再进入3级 ...
- Python 入门学习10 —— 文件操作的应用及升级版三级菜单
一.文件操作的基本流程 open( ) open( ) 方法用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出 OSError. open(f ...
- python三级菜单_python三级菜单
需求:编写三级菜单 1.菜单需求: 一级菜单: 北京 山西 二级菜单: 朝阳 ...
- python三级菜单设计题目_Python三级菜单
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 三级菜单:打印省.市.县三级菜单. 可返回上一级,可随时退出程序首先准备基础数据 ...
- python字典之模拟三级菜单的程序
博主简介:原互联网大厂tencent员工,网安巨头Venustech员工,阿里云开发社区专家博主,微信公众号java基础笔记优质创作者,csdn优质创作博主,创业者,知识共享者,欢迎关注,点赞,收藏. ...
最新文章
- python如何开启多进程_python如何写多进程
- 联通研究院处长王志军:Hadoop在电信业大数据的应用
- ip在线代理网页联合早报_一次免费代理ip的爬取实战
- asp 文本转时间_ASP.NET Core界面开发,DevExpress v19.2增强富文本编辑器功能
- html5 手机剪切板,H5页面在手机端如何实现复制粘贴板功能
- 数据结构 与游戏背包的设计
- 面试经常考的五个Sql查询
- 使用MATLAB任意修改图片像素大小
- 计算机网络白龙飞,成电等你来 | 你的辅导员已上线,男神辅导员闪亮登场(一)...
- 域名解析中TTL是什么意思
- 洛谷3356火星探险问题
- 黑鲨手机计算机科学技术器,黑鲨4Pro将PC的SSD存储科技带到手机端,真技术革命还假营销噱头?...
- nltk.stem.WordNetLemmatizer()时报错BadZipFile(“File is not a zip file“)的解决方法
- 主页被改为www.n220.com www.129yy.cn
- 华为设备AP管理命令
- Windows光标选中字符切换到输入字符快捷键
- 记录一次vue项目引入GoogleMap API进行地图定位
- ad用户如何和计算机名对应,计算机加域和AD里相应对象的问题
- 查找:顺序查找、二分查找、分块查找
- HTML+CSS+JS实现昆明蓝光天骄城烂尾楼业主信息收集页面(前段页面展示之HTML)