Python【三级菜单】练习
Python【三级菜单】练习
数据结构:
menu = {
'北京':{
'海淀':{
'五道口':{
'soho':{},
'网易':{},
'google':{}
},
'中关村':{
'爱奇艺':{},
'汽车之家':{},
'youku':{},
},
'上地':{
'百度':{},
},
},
'昌平':{
'沙河':{
'老男孩':{},
'北航':{},
},
'天通苑':{},
'回龙观':{},
},
'朝阳':{},
'东城':{},
},
'上海':{
'闵行':{
"人民广场":{
'炸鸡店':{}
}
},
'闸北':{
'火车站':{
'携程':{}
}
},
'浦东':{},
},
'山东':{},
}
需求:
1. 可依次选择进入各子菜单
2 可从任意一层往回退到上一层
3. 可从任意一层退出程序
所需新知识点:列表、字典
初级版:用多个while完成,代码较多,适合入门理解
menu = {
'北京':{
'海淀':{
'五道口':{
'soho':{},
'网易':{},
'google':{}
},
'中关村':{
'爱奇艺':{},
'汽车之家':{},
'youku':{},
},
'上地':{
'百度':{},
},
},
'昌平':{
'沙河':{
'老男孩':{},
'北航':{},
},
'天通苑':{},
'回龙观':{},
},
'朝阳':{},
'东城':{},
},
'上海':{
'闵行':{
"人民广场":{
'炸鸡店':{}
}
},
'闸北':{
'火车站':{
'携程':{}
}
},
'浦东':{},
},
'山东':{},
}
active= True #控制整个进程
while active:
print('----请您在以下的城市中选择你想去的城市----')
print('"q"退出程序 ')
for city_print in menu:
print(city_print)
city=input("请输入你想去的城市(“q”退出系统)>>>")
if city == 'q':
exit()
elif city not in menu:
print("*输入错误请重新输入*")
else:
while active:
print('----请您在以下的城区中选择你想去的城区----')
print('"q"返回上一级 "Q"退出程序 ')
for district_print in menu[city]:
print(district_print)
distric=input("请输入你想去的城区>>>")
if distric =='q':
break
elif distric == 'Q':
active=False
elif distric not in menu[city]:
print('*输入错误,请重新输入*')
else:
while active:
print('----请您在以下的街道中选择你想去的街道----')
print('"q"返回上一级 "Q"退出程序 ')
for street_print in menu[city][distric]:
print(street_print)
street = input('请输入你想去的街区>>>')
if street=='q':
break
elif street == 'Q':
active==False
elif street not in menu[city][distric]:
print('*输入错误,请重新输入*')
else:
while active:
print('----请您在以下的公司中选择你想去的公司----')
print('"q"返回上一级 "Q"退出程序 ')
for company_print in menu[city][distric][street]:
print(company_print)
company=input('请输入你想去的公司(“q”返回上一级)>>>')
if company=='q':
break
elif company=='Q':
active =False
elif company not in menu[city][distric][street]:
print('*输入错误,请重新输入*')
else:
print('恭喜你找到合适的公司')
active =False
print("----- 程序结束-----")
升级版:只有一个while语句,利用创建一个空列表接受父类菜单
PS:退出返回上一层功能不咋会弄了,有没有大神给我个思路
#coding=utf-8
_date_ = '2018/10/21 15:41'
menu = {
'北京':{
'海淀':{
'五道口':{
'soho':{},
'网易':{},
'google':{}
},
'中关村':{
'爱奇艺':{},
'汽车之家':{},
'youku':{},
},
'上地':{
'百度':{},
},
},
'昌平':{
'沙河':{
'老男孩':{},
'北航':{},
},
'天通苑':{},
'回龙观':{},
},
'朝阳':{},
'东城':{},
},
'上海':{
'闵行':{
"人民广场":{
'炸鸡店':{}
}
},
'闸北':{
'火车站':{
'携程':{}
}
},
'浦东':{},
},
'山东':{},
}
menu_copy =menu
main_menu=[]
active=True
while active:
for key in menu_copy:
print(key)
main_menu.append(key)
uesr_get = input("输入你想去的地方或公司:")
if uesr_get in main_menu:
print("'Q'退出选择程序 'q'返回上一级 ")
if bool(menu_copy[uesr_get]) == False:
print("选择完成")
exit()
menu_copy = menu_copy[uesr_get]
continue
elif uesr_get == "q":
pass
elif uesr_get =="Q":
print("退出完成")
active=False
else:
print("输入出错,请重新选择")
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步