作业需求:

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作业(二):三级菜单相关推荐

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

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

  2. 老男孩Day1作业(二):编写多级菜单

    要求:编写多级菜单 1.三级菜单 2.可依次进入各子菜单 3.菜单能够回到上一级 4.用到知识点:字典.列表.多层循环.函数 1)编写思路 编写思路参考下面GitHub链接中的流程图 https:// ...

  3. day1 作业二:多级菜单操作

    作业二:多级菜单 (1)三级菜单 (2)可以次选择进入各子菜单 (3)所需新知识点:列表.字典 要求:输入b返回上一层,输入q退出整个程序 思路:三级菜单第一级别是省,第二级别是市,第三级别是县,用户 ...

  4. day1作业二:多级菜单操作

    作业二:多级菜单 (1)三级菜单 (2)可以次选择进入各子菜单 (3)所需新知识点:列表.字典 要求:输入back返回上一层,输入quit退出整个程序 思路: (1)首先定义好三级菜单字典: (2)提 ...

  5. 老男孩Day1作业(一):编写登录接口

    要求:编写登录接口 1. 输入用户名和密码 2. 认证成功后显示欢迎信息 3. 输错三次后锁定 1)编写思路 编写思路参考下面GitHub链接中的流程图 https://github.com/Chui ...

  6. Day1作业二查找特定名称文件

    作业二: 遍历"Day1-homework"目录下文件: 找到文件名包含"2020"的文件: 将文件名保存到数组result中: 按照序号.文件名分行打印输出. ...

  7. 路飞学城14天集训营作业2—三级菜单

    数据结构:menu = {'北京':{'海淀':{'五道口':{'soho':{},'网易':{},'google':{}},'中关村':{'爱奇艺':{},'汽车之家':{},'youku':{}, ...

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

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

  9. python123.io能不能补交作业_Python学习day1作业总结

    为了以后更好更快速的复习,此博客记录我对作业的总结.对于基础作业,我认为最重要的是过程,至于实现是不是完美,代码是不是完美,虽然重要,但是作业过程中,用到的知识点是值得总结和整理的. 一.模拟登陆: ...

  10. jQuery 三级菜单

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

最新文章

  1. redis-deskmanager 连不上 虚拟机 - centos redis
  2. pandas使用rename函数自定义重命名dataframe指定索引标签(位置)的名称(customize rename index value or label)
  3. linux内核网络协议栈--数据包的接收流程(二十三)
  4. WebMagic学习-解析json
  5. 谈谈技术原则,技术学习方法,代码阅读及其他的(引用)
  6. 360好搜鬼畜视频一下两下成洗脑热词
  7. 家中没有电脑,怎么用手机清除路由器垃圾,或更换路由器密码?
  8. 19套最新的免费图标字体集
  9. 微软Win11 商店各个应用可单独下载
  10. 搭建一个网站步骤 制作网页完整步骤
  11. linux smtp ip伪造,邮箱伪造之搭建匿名SMTP服务器
  12. Android常用十大框架
  13. 摄像头采集图像本地HDMI输出延迟测试
  14. MSDC 4.3 接口规范(27)
  15. 利用CSS让dl dt dd呈现多行多列效果
  16. Error:403 No valid crumb was included in the request
  17. OA系统是什么,为什么要用OA系统呢?
  18. RK3568 VS RK3399
  19. Matlab二维图形绘制与图形处理
  20. java中floa后面有L吗_关于java的nextFloat()后面跟一个nextLine()

热门文章

  1. java能解决数学题目吗_Java竟然可以做数学应用题?
  2. c++学习:多态案例之魔法门英雄无敌
  3. google阅读器快捷键
  4. Windows系统封装(二)导入封装工具安装软件,安装系统。
  5. 服务器系统封装iso,轻松几步 封装Windows系统镜像
  6. 三七女生节,解密阿里女程序员们的代码诗!
  7. swift野梦抄袭 taylor_断眉质疑Taylor Swift新歌抄袭《Next to Me》,双方粉丝掀起骂战...
  8. 道德经和译文_老子《道德经》全文解析及通俗译文
  9. [视频]K8软件破解脱壳入门教程
  10. 槑图秀秀 (初学JAVA第三篇)