老男孩Day1作业(二):三级菜单
作业需求:
1. 运行程序输出第一级菜单
2. 选择一级菜单某项,输出二级菜单,同理输出三级菜单
3. 菜单数据保存在文件中
4. 让用户选择是否要退出
5. 有返回上一级菜单的功能
1)编写思路
编写思路参考下面GitHub链接中的流程图
https://github.com/KongChan1988/51CTO-Treasure/blob/master/Python_Study/%E7%AC%AC%E4%B8%80%E6%A8%A1%E5%9D%97%E5%AD%A6%E4%B9%A0/Day01/HomeWork/%E4%B8%89%E7%BA%A7%E8%8F%9C%E5%8D%95/%E4%B8%89%E7%BA%A7%E8%8F%9C%E5%8D%95.jpg
2)具体实现
#-*- Coding:utf-8 -*- # Author: D.Gray ''' 作业需求: 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('漫画不存在请重新输入')
3)Github笔记
第一周的笔记的地址是:
https://github.com/KongChan1988/51CTO-Treasure/tree/master/Python_Study/%E7%AC%AC%E4%B8%80%E6%A8%A1%E5%9D%97%E5%AD%A6%E4%B9%A0/Day01/Practice%20Notes
第一周作业的地址是:
https://github.com/KongChan1988/51CTO-Treasure/blob/master/Python_Study/%E7%AC%AC%E4%B8%80%E6%A8%A1%E5%9D%97%E5%AD%A6%E4%B9%A0/Day01/HomeWork/%E4%B8%89%E7%BA%A7%E8%8F%9C%E5%8D%95/%E4%B8%89%E7%BA%A7%E8%8F%9C%E5%8D%95.py
4)Readme.md文档
https://github.com/KongChan1988/51CTO-Treasure/blob/master/Python_Study/%E7%AC%AC%E4%B8%80%E6%A8%A1%E5%9D%97%E5%AD%A6%E4%B9%A0/Day01/HomeWork/%E4%B8%89%E7%BA%A7%E8%8F%9C%E5%8D%95/readme.md
转载于:https://www.cnblogs.com/catepython/p/7237362.html
老男孩Day1作业(二):三级菜单相关推荐
- 第一天作业二 三级菜单的实现
第一天作业二 三级菜单的实现 这个作业花了一定的时间,主要是卡在循环时显示不同的问题. #!/usr/bin/env python # -*-conding:utf-8-** # __Author__ ...
- 老男孩Day1作业(二):编写多级菜单
要求:编写多级菜单 1.三级菜单 2.可依次进入各子菜单 3.菜单能够回到上一级 4.用到知识点:字典.列表.多层循环.函数 1)编写思路 编写思路参考下面GitHub链接中的流程图 https:// ...
- day1 作业二:多级菜单操作
作业二:多级菜单 (1)三级菜单 (2)可以次选择进入各子菜单 (3)所需新知识点:列表.字典 要求:输入b返回上一层,输入q退出整个程序 思路:三级菜单第一级别是省,第二级别是市,第三级别是县,用户 ...
- day1作业二:多级菜单操作
作业二:多级菜单 (1)三级菜单 (2)可以次选择进入各子菜单 (3)所需新知识点:列表.字典 要求:输入back返回上一层,输入quit退出整个程序 思路: (1)首先定义好三级菜单字典: (2)提 ...
- 老男孩Day1作业(一):编写登录接口
要求:编写登录接口 1. 输入用户名和密码 2. 认证成功后显示欢迎信息 3. 输错三次后锁定 1)编写思路 编写思路参考下面GitHub链接中的流程图 https://github.com/Chui ...
- Day1作业二查找特定名称文件
作业二: 遍历"Day1-homework"目录下文件: 找到文件名包含"2020"的文件: 将文件名保存到数组result中: 按照序号.文件名分行打印输出. ...
- 路飞学城14天集训营作业2—三级菜单
数据结构:menu = {'北京':{'海淀':{'五道口':{'soho':{},'网易':{},'google':{}},'中关村':{'爱奇艺':{},'汽车之家':{},'youku':{}, ...
- python三级菜单_python三级菜单
需求:编写三级菜单 1.菜单需求: 一级菜单: 北京 山西 二级菜单: 朝阳 ...
- python123.io能不能补交作业_Python学习day1作业总结
为了以后更好更快速的复习,此博客记录我对作业的总结.对于基础作业,我认为最重要的是过程,至于实现是不是完美,代码是不是完美,虽然重要,但是作业过程中,用到的知识点是值得总结和整理的. 一.模拟登陆: ...
- jQuery 三级菜单
在写这个的时候,首先要捋顺思路.点一个菜单的时候,其他的要闭合,点一级菜单的时候,二三级菜单要闭合,等等. 大致代码如下: <body><aside><ul class= ...
最新文章
- redis-deskmanager 连不上 虚拟机 - centos redis
- pandas使用rename函数自定义重命名dataframe指定索引标签(位置)的名称(customize rename index value or label)
- linux内核网络协议栈--数据包的接收流程(二十三)
- WebMagic学习-解析json
- 谈谈技术原则,技术学习方法,代码阅读及其他的(引用)
- 360好搜鬼畜视频一下两下成洗脑热词
- 家中没有电脑,怎么用手机清除路由器垃圾,或更换路由器密码?
- 19套最新的免费图标字体集
- 微软Win11 商店各个应用可单独下载
- 搭建一个网站步骤 制作网页完整步骤
- linux smtp ip伪造,邮箱伪造之搭建匿名SMTP服务器
- Android常用十大框架
- 摄像头采集图像本地HDMI输出延迟测试
- MSDC 4.3 接口规范(27)
- 利用CSS让dl dt dd呈现多行多列效果
- Error:403 No valid crumb was included in the request
- OA系统是什么,为什么要用OA系统呢?
- RK3568 VS RK3399
- Matlab二维图形绘制与图形处理
- java中floa后面有L吗_关于java的nextFloat()后面跟一个nextLine()
热门文章
- java能解决数学题目吗_Java竟然可以做数学应用题?
- c++学习:多态案例之魔法门英雄无敌
- google阅读器快捷键
- Windows系统封装(二)导入封装工具安装软件,安装系统。
- 服务器系统封装iso,轻松几步 封装Windows系统镜像
- 三七女生节,解密阿里女程序员们的代码诗!
- swift野梦抄袭 taylor_断眉质疑Taylor Swift新歌抄袭《Next to Me》,双方粉丝掀起骂战...
- 道德经和译文_老子《道德经》全文解析及通俗译文
- [视频]K8软件破解脱壳入门教程
- 槑图秀秀 (初学JAVA第三篇)