一.实现功能

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实战演练(二)三级菜单相关推荐

  1. 第一天作业二 三级菜单的实现

    第一天作业二 三级菜单的实现 这个作业花了一定的时间,主要是卡在循环时显示不同的问题. #!/usr/bin/env python # -*-conding:utf-8-** # __Author__ ...

  2. Python练习_三级菜单

    打印省.市.县三级菜单 可返回上一级 可随时退出程序 用递归实现:menu = {'北京': {'海淀': {'五道口': {'soho': {},'网易': {},'google': {}},'中关 ...

  3. python实现一个三级菜单

    要求 1.可以一层一层的进入到所有层 2.可以在每一层返回上一层 3.可以在任意层退回主菜单 '''^....0^ .1 ^1^.. 011.^ 1.0^ 1 ^ ^0.11 ^ ^..^0. ^ 0 ...

  4. jQuery 三级菜单

    在写这个的时候,首先要捋顺思路.点一个菜单的时候,其他的要闭合,点一级菜单的时候,二三级菜单要闭合,等等. 大致代码如下: <body><aside><ul class= ...

  5. python编写登录接口与三级菜单小程序

    一:登录接口 编写思路 python登录接口登录三次失败锁定: 一:建一个数据库文件保存用户名和密码,用来判断用户是否存在 二:用户锁定文件,当用户登录三次错误后记录用户信息进入锁定文件,下次登录时就 ...

  6. python学习(10)字典学习,写一个三级菜单程序

    学习了字典的应用.按老师的要求写一个三级菜单程序. 三级菜单程序需求如下: 1.深圳市的区--街道--社区---小区4级 2.建立一个字典,把各级区域都装进字典里 3.用户可以从1级进入2级再进入3级 ...

  7. Python 入门学习10 —— 文件操作的应用及升级版三级菜单

    一.文件操作的基本流程 open( )   open( ) 方法用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出 OSError. open(f ...

  8. python三级菜单_python三级菜单

    需求:编写三级菜单 1.菜单需求: 一级菜单:            北京                                  山西 二级菜单:    朝阳                ...

  9. python三级菜单设计题目_Python三级菜单

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 三级菜单:打印省.市.县三级菜单. 可返回上一级,可随时退出程序首先准备基础数据 ...

  10. python字典之模拟三级菜单的程序

    博主简介:原互联网大厂tencent员工,网安巨头Venustech员工,阿里云开发社区专家博主,微信公众号java基础笔记优质创作者,csdn优质创作博主,创业者,知识共享者,欢迎关注,点赞,收藏. ...

最新文章

  1. python如何开启多进程_python如何写多进程
  2. 联通研究院处长王志军:Hadoop在电信业大数据的应用
  3. ip在线代理网页联合早报_一次免费代理ip的爬取实战
  4. asp 文本转时间_ASP.NET Core界面开发,DevExpress v19.2增强富文本编辑器功能
  5. html5 手机剪切板,H5页面在手机端如何实现复制粘贴板功能
  6. 数据结构 与游戏背包的设计
  7. 面试经常考的五个Sql查询
  8. 使用MATLAB任意修改图片像素大小
  9. 计算机网络白龙飞,成电等你来 | 你的辅导员已上线,男神辅导员闪亮登场(一)...
  10. 域名解析中TTL是什么意思
  11. 洛谷3356火星探险问题
  12. 黑鲨手机计算机科学技术器,黑鲨4Pro将PC的SSD存储科技带到手机端,真技术革命还假营销噱头?...
  13. nltk.stem.WordNetLemmatizer()时报错BadZipFile(“File is not a zip file“)的解决方法
  14. 主页被改为www.n220.com www.129yy.cn
  15. 华为设备AP管理命令
  16. Windows光标选中字符切换到输入字符快捷键
  17. 记录一次vue项目引入GoogleMap API进行地图定位
  18. ad用户如何和计算机名对应,计算机加域和AD里相应对象的问题
  19. 查找:顺序查找、二分查找、分块查找
  20. HTML+CSS+JS实现昆明蓝光天骄城烂尾楼业主信息收集页面(前段页面展示之HTML)

热门文章

  1. 20000条笑话保证笑死你
  2. 计算机程序框图符号,数据流程图符号详解
  3. 2-5.多进程、多线程、异步携程
  4. 冰桶挑战,正在朝功利化和畸形化方向“扩散”
  5. java 编写metro风格_纯Javascript实现Windows 8 Metro风格实现
  6. 离职后的总结与感想(一)
  7. 练习7-9 计算天数(15 分)
  8. 简单的动画(梦幻西游)
  9. ffmpeg java 实时视频流转码
  10. 初等变换:矩阵与行列式