需要:
1. 运行程序输出第一级菜单
2. 选择一级菜单某项,输出二级菜单,同理输出三级菜单
3. 菜单数据保存在文件中
4. 让用户选择是否要退出
5. 有返回上一级菜单的功能
解题思路:
1.先实现选择一级菜单的项输出二级菜单,同理输出三级菜单
2.对输入结果判断(匹配进入下一级,不匹配退出)
3.增加用户选择功能,即增加结果判断
4.增加返回上一级菜单功能,利用循环嵌套,重点tag的使用。
写的过程中,注意把功能分解,把框架搭起来,一步一步添加附属功能。
data = {
'火影':{
'木叶村':{
'宇智波.鼬': {'属性能力':'万花筒写轮眼','男':26},
'日向雏田': {'属性能力':'白眼','女':24},
'我爱罗': {'属性能力':'砂纸守鹤','男':24},
},
'晓':{
'佩恩':{'属性能力':'轮回眼','男':28},
'鬼鲛':{'属性能力':['水遁','鲛肌'],'男':28},
'迪达拉':{'属性能力':['黏土炸弹','自爆'],'男':28}
},
'代目':{
'初代':{'姓名':'千手柱间','属性能力':'树诞降临','男':99999},
'三代':{'姓名':'猿飞','属性能力':['土流大河','召唤猿魔'],'男':64},
'四代':{'姓名':'波风水门','属性能力':['飞雷神之术','螺旋丸'],'男':34},
},
},
'妖精的尾巴':{
'灭龙魔导师':{
'纳兹':{'属性能力':'火之灭龙魔法','男':21,},
'伽吉鲁':{'属性能力':'铁之灭龙魔法','男':23,},
'温蒂':{'属性能力':'天之灭龙魔法','女':18,},
},
'超S魔导师':{
'吉尔达斯':{'属性能力':'粉碎','男':28},
'艾璐萨':{'属性能力':'变装魔法','女':26},
'米拉杰':{'属性能力':'变成撒旦','女':27},
},
'六魔将':{
'深夜':{'属性能力':'扭曲空间','男':24},
'克布拉':{'属性能力':'毒之灭龙魔法','男':24},
'安吉拉':{'属性能力':'召唤星灵','女':22},
},
}
}
def func():
tag = True
while tag:
ret1 = []
for i in data:
ret1.append(i)
print('这是一级菜单',ret1)
info1 = input('一级菜单请选择:').strip()
if info1 in ret1:
while tag:
ret2 = []
for j in data[info1]:
ret2.append(j)
print('这是二级菜单',ret2)
info2 = input('二级菜单请选择:').strip()
if info2 in ret2:
while tag:
ret3 = []
for k in data[info1][info2]:
ret3.append(k)
print('这是三级菜单',ret3)
info3 = input('三级菜单请选择:').strip()
if info3 in ret3:
print(data[info1][info2][info3])
tag = False
elif info3 == 'retn':
break
elif info3 == 'quick':
tag = False
else:
print('三级查询结果不存在')
tag = False
elif info2 == 'retn':
break
elif info2 == 'quick':
tag = False
else:
print('二级菜单查询结果不存在')
tag = False
elif info1 == 'quick':
tag = False
else:
print('一级菜单查询结果不存在')
tag = False
func()