三级菜单小程序

字典嵌套+循环嵌套:

 1 # __author:"Cheng" 
 2 # date:2018/2/17
 3 
 4 menu_ex = {'江苏省':{'常州市':{'武进区':{}},
 5                     '南京市':{'玄武区':{}},
 6                     '盐城市':{'大丰区':{}},
 7                   },
 8            '浙江省':{'湖州市':{'吴兴区':{}},
 9                     '杭州市':{'余杭区':{}},
10                     '宁波市':{'江北区':{}},
11                   },
12            '四川省':{'成都市':{'金牛区':{}},
13                     '自贡市':{'大安区':{}},
14                     '绵阳市':{'安州区':{}},
15                   }
16 }
17 
18 choose_layer = menu_ex      # 实现动态循环
19 parent_layers = []  # 保存所有父级为列表 , 最后一个元素永远都是父亲级
20 while True:
21     for key in choose_layer:     # 循环输出字典本身
22         print(key)
23     usr_choice = input('请输入您的选择:').strip()
24     if len(usr_choice) == 0:continue    # 如果输入长度是0,那么跳过当次输出,重新循环
25     if usr_choice in choose_layer:
26         parent_layers.append(choose_layer)  # 在进入下一层之前,把当前层(也就是下一层的父级)追加到列表中,下一次loop,当用户选择r的时候就可以直接取列表的最后一个值出来
27         choose_layer = choose_layer[usr_choice]     # 改成了子层
28     elif usr_choice == 'r':
29         if parent_layers:   # []
30             choose_layer = parent_layers.pop()  # 取出列表的最后一个值,因为它就是当前层的父级
31     else:
32         print('无此项!') 
三级菜单小程序
原文地址:https://www.cnblogs.com/cbl321/p/8452307.html