|
发表于 2018-9-25 00:19:17
|
显示全部楼层
本楼为最佳答案
三级菜单最难的是构造这个菜单字典啊2333
借用楼上完成的菜单字典
- dict_list = {'安徽':{'合肥':['肥西县','庐江县'],'安庆':['宿松','枞阳']},'福建':{'福州':['闽侯县','闽清县'],'龙岩':['新罗区','永定区']}}
- now, back = dict_list, list()
- while True:
- # 打印菜单,now永远是当前显示的菜单级
- for count, each_key in enumerate(now.keys() if isinstance(now, dict) else now, 1):
- print('%d %s' % (count, each_key), end=' ' if count%8 else '\n')
- # 输入
- enter = input('\n>>:')
- # 输入q退出
- if enter == 'q':
- break
- # 私用back列表存储上一层菜单,若列表不为空,则把最后一次的历史记录弹回给now(同时味着历史记录删掉最后一个记录),否则空循环
- elif enter == 'b':
- if len(back) > 0:
- now = back.pop()
- else:
- continue
- # 因为字典最深层是列表,所以还要对字典类型进行判断,是字典就进去一层,不是就空循环
- elif isinstance(now, dict):
- get_enter = now.get(enter)
- else:
- continue
- # 进去一层
- get_enter = now.get(enter)
- # 对输入进行有效性验证,有效先加历史记录,再把自己变成深一层,否则空循环
- if get_enter:
- back.append(now)
- now = get_enter
复制代码 |
|