作业需求:

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则用户继续选择想要查询的人物
pass
else: #判断用户是否继续查询,如结果为q则退出整个循环
_exit()
elif choices3 == '' or choices3 == ' ': #判断用户输入的choices3内容是否为空
print("输入不能为空")
elif choices3 == 'b': #判断用户输入内容是否为返回上一级菜单
break
elif choices3 =='q': #判断用户输入内容是否为q
_exit()
else: #判断用户输入内容是否存在
print('人物不存在请重新输入') elif choices2 == '' or choices2 == ' ':
print("输入不能为空")
elif choices2 == 'q':
_exit()
elif choices2 == 'b':
break
else:
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

老男孩Day1作业(二):三级菜单的更多相关文章

  1. 老男孩python学习之作业二---三级菜单

    因为之前花力气完成了购物小程序的作业 现在做这个三级菜单简直是so easy!! 1.显示省级菜单 2.交互,提示用户输入要查看的省份(退出e) 2.1.用户正确输入列表中的省份 3.显示市级菜单 3 ...

  2. python作业:三级菜单(第一周)

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

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

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

  4. day1作业二:多级菜单操作(函数实现)

    作业二:多级菜单 (1)三级菜单 (2)可以次选择进入各子菜单 (3)所需新知识点:列表.字典 要求:输入back返回上一层,输入quit退出整个程序 本示例的三级菜单是一个yaml文件格式,格式如下 ...

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

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

  6. day1作业二:多级菜单

        作业二:多级菜单 1.三级菜单 2.可以次选择进入各子菜单 3.所需新知识点:列表.字典 4.打印b回到上一层 5.打印q退出循环 流程图如下: readme: (1)存储三级菜单的字典;设置 ...

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

    需求:编写登陆接口1. 用户输入帐号密码进行登陆2. 用户信息保存在文件内3. 用户密码输入错误三次后锁定用户 1)编写思路 编写思路参考下面GitHub链接中的流程图 https://github. ...

  8. Day2课后作业:三级菜单简单版

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

  9. day1_作业2(三级菜单)--改进版

    #!/usr/local/bin/python3 # -*- coding:utf-8 -*- province={ '江苏省':{ '南京市':['秦淮区','玄武区','栖霞区'], '苏州市': ...

随机推荐

  1. adb命令(二)

    1.获取手机型号指令 adb shell cat /system/build.prop | findstr "ro.product.model" 2.获取手机处理器信息 adb s ...

  2. Android数据传递的五种方法汇总

    Android开发中,在不同模块(如Activity)间经常会有各种各样的数据需要相互传递,我把常用的几种 方法都收集到了一起.它们各有利弊,有各自的应用场景. 我现在把它们集中到一个例子中展示,在例 ...

  3. 继续学习:C语言关键字

    auto :声明自动变量 break:跳出当前循环 case:开关语句分支 char :声明字符型变量或函数 const :声明只读变量 continue:结束当前循环,开始下一轮循环 default ...

  4. 【LeetCode】019. Remove Nth Node From End of List

    Given a linked list, remove the nth node from the end of list and return its head. For example, Give ...

  5. “Hello World”—— 第一个汇编程序

    Hello World这是每一门编程语言的第一个最简单程序,下面那个程序就是汇编语言的Hello World.学汇编一段时间了,到现在才记录下自己的第一个汇编程序笔记.虽然这是个相当简单的小程序,但这 ...

  6. Operating System-Process(1)什么是进程&&进程的创建(Creation)&&进程的终止(Termination)&&进程的状态(State)

    本文阐述操作系统的核心概念之一:进程(Process),主要内容: 什么是进程 进程的创建(Creation) 进程的终止(Termination) 进程的状态(State) 一.什么是进程 1.1 ...

  7. 代码实现跟控制器跳转到storyBoard

  8. UVA624(01背包记录路径)

    题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem ...

  9. 巧用函数实现js插入css样式

    我用的是webstorm,当写css 样式时候,会没有提示,可以按Ctrl+Alt+Space.

  10. VMware Workstation虚拟机安装Windows 7系统

    1.进入VMware Workstation虚拟机软件界面,选择新建虚拟机