python三级菜单(优化版)

python三级菜单(优化版)

#!/usr/bin/env python
#-*- coding:utf-8 -*-

dic = {
  '北京': {
    '东城':
      {
       '沙河': ['沙河机场', '链家'],
       '天通苑': ['北方明珠', '天通尾货']
       },
    '朝阳':
      {
       '花家地': ['朝阳公园', '望京soho'],
       '北小河': ['北小河公园', '北京中学']
      }
  },
  '上海': {
       '虹桥':
         {
          '虹桥机场': ['超市', '特产店', '水吧'],
          '东方明珠': ['电影院', '游泳馆', '餐馆']
         },
       '浦东':
         {
          '景秀路': ['世纪公园', '立交桥'],
          '中环路': ['鲁迅公园', '同济大学']
         }
      },
  '河北': {
      '石家庄':
         {
          '行唐': ['东正', '阳关'],
          '赵县': ['赵州桥', '高村乡']
         },
      '唐山':
         {
          '滦南县': ['司各庄镇', '安各庄镇'],
          '玉田县': ['玉田镇', '亮甲店镇']
         }
     }
  }

current_layer = dic
parent_layer = []      #将父级key值放入到列表中
flags = False        #设置标志位
while not flags:
  for key in current_layer:
    print(key)
  choose = input("请选择,输入b返回上一级菜单,输入q退出菜单:").strip()
  if choose in current_layer:
    parent_layer.append(current_layer)     #将当前的状态放入列表中
    current_layer = current_layer[choose]
  elif choose == 'b':
    if parent_layer:
      current_layer = parent_layer.pop()
  elif choose == 'q':
    flags = True
  else:
    print("输入有误,请重新输入:")

posted @ 2018-12-03 10:48  挖坑达人  阅读(5)  评论(0编辑  收藏  举报