#!/usr/bin/env python3
# -*- coding:utf-8 -*-
#
# Author: Payne Zheng <zzuai520@live.com>
# Date: 2018-04-11 10:41:15
# Location: DongGuang
# Desc: 三级菜单,支持在任一层级返回上层与退出
#
menu = {
'北京': {
'海淀': {
'五道口': {
'soho': {},
'网易': {},
'google': {}
},
'中关村': {
'爱奇艺': {},
'汽车之家': {},
'youku': {},
},
'上地': {
'百度': {},
},
},
'昌平': {
'沙河':{
'老男孩': {},
'北航': {},
},
'天通苑': {},
'回龙观': {},
},
'朝阳': {},
'东城': {},
},
'上海': {
'闵行': {
"人民广场": {
'炸鸡店':{}
}
},
'闸北': {
'火车战': {
'携程': {}
}
},
'浦东': {},
},
'山东': {}
}
cache_list = [] # 存储层级历史记录
while True:
next_menu = menu
for i in cache_list:
next_menu = next_menu[i] # 以当前层级key生成新的子字典
print("===========中国城市列表============")
for item in next_menu: # 打印当前层级的所有key
print(item)
choice = input("\033[33m请输入查找的地名【如要退出请按:q/返回上级菜单请按:b】 >>: \033[0m")
if choice == 'q': # 退出
exit("\033[34m欢迎您下次使用!再见\033[0m")
elif choice == 'b': # 返加上层时在列表中删除当前层级
if len(cache_list) > 0:
cache_list.pop()
else:
print("\033[32m这已经是最上层了\033[0m")
elif next_menu.get(choice): # 进入下层时将当前层级存入列表
cache_list.append(choice)
else:
print("\033[1;31m没找到该地区信息,请重新选择\033[0m")