利用字典编写菜单程序

要求:

  1. 共有三级菜单可选择
  2. 在每层菜单可进入下一菜单、返回上一层菜单和退出

代码:

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 # Author:James Tao
 4 
 5 data={
 6     '北京':{
 7         '昌平':{
 8             '沙河':['oldboy','test'],
 9             '天通苑':['链家地产','我爱我家']
10         },
11         '朝阳':{
12             '望京':['奔驰','陌陌'],
13             '国贸':{'CCIC','HP'},
14             '东直门':{'Advent','飞信'}
15         },
16         '海淀':{}
17     },
18     '山东':{
19         '德州':{},
20         '青岛':{},
21         '济南':{}
22     },
23     '广东':{
24         '东莞':{},
25         '常熟':{},
26         '佛山':{}
27     }
28 }
29 
30 flag=True
31 
32 while flag:
33 
34     for i in data:
35         print(i)
36     first_choice=input('选择进入下一级菜单/输入Q退出:')
37 
38     #进入第一级菜单
39     if first_choice in data:
40 
41         while flag:
42 
43             for j in data[first_choice]:
44                 print('	',j)
45             second_choice=input('选择进入下一级菜单/输入R返回上一级/输入Q退出:')
46 
47             #进入第二级菜单
48             if second_choice in data[first_choice]:
49                 while flag:
50 
51                     for z in data[first_choice][second_choice]:
52                         print('		', z)
53                     third_choice=input('选择进入下一级菜单/输入R返回上一级/输入Q退出:')
54 
55                     #进入第三级菜单
56                     if third_choice in data[first_choice][second_choice]:
57                         while flag:
58 
59                             for k in data[first_choice][second_choice][third_choice]:
60                                 print('			', k)
61                             fourth_choice=input('最后一层,输入R返回上一级/输入Q退出:')
62 
63                             #是否返回到第三级或退出
64                             if fourth_choice=='R':
65                                 break
66                             elif fourth_choice=='Q':
67                                 flag=False
68 
69                     #是否返回到第二级或退出
70                     if third_choice=='R':
71                         break
72                     elif third_choice == 'Q':
73                         flag = False
74 
75             #是否返回到第一级或退出
76             if second_choice=='R':
77                 break
78             elif third_choice == 'Q':
79                 flag = False
80 
81     #是否退出
82     if first_choice=='Q':
83         break
原文地址:https://www.cnblogs.com/BIT-taozhen/p/9745214.html