代码改变世界

python之三级菜单

2017-09-07 20:08  selfcourage  阅读(170)  评论(0)    收藏  举报
 1 #-*- coding:utf-8 -*-
 2 
 3 '''******************************************************'
 4                     三级菜单
 5         1. 运行程序输出第一级菜单
 6         2. 选择一级菜单某项,输出二级菜单,同理输出三级菜单
 7         3. 返回上一级菜单和顶部菜单
 8         4. 菜单数据保存在文件中"
 9 '******************************************************'''
10 
11 import sys
12 dic = {
13     "北京":{
14         "fa":{
15             "aa":[123]
16         },
17         "li":{
18             "bb":[122,332]
19         }
20     },
21     "上海": {
22         "浦东新区":{
23             "金桥":["新金桥路","云桥路"]
24         },
25         "普陀":{
26             "dd":["s"]
27         }
28     }
29 }
30 
31 
32 file = open("menu.txt","w+",encoding='utf-8')
33 
34 lTmp = []
35 while True:
36     dTmp = dic
37     for item in lTmp:
38         if dTmp.get(item)!= None:
39             dTmp = dTmp[item]
40         else:
41             print("您要查找的菜单:%s不存在!"%lTmp[-1])
42             lTmp.pop()
43     print("当前的菜单项有:", list(dTmp.keys()))
44     choice = input("1、查看菜单节点,2、返回上一级(b/B),返回顶级菜单(t\T) 3、退出(q/Q)\n>>>")
45     if choice == '1':
46         name = input("请输入您要查看的菜单\n>>>")
47         lTmp.append(name)
48     elif choice.lower() == 'b' or choice.lower() == 't':
49         if choice.lower() == 'b':
50             lTmp.pop()
51         else:
52             lTmp.clear()
53     elif choice.lower() == 'q':
54         file.write(str(dic))
55         file.close()
56         sys.exit(1)
57     else:
58         print("很抱歉您的输入有误,请重新输入!")