多级菜单:
1.三级菜单
2.可以依次选择进入各个子菜单
3.各个菜单都可扩展选项
缺点:
1.多级菜单不能扩展等级。
select = { '中国': [ {'北京': ['东城区', '西城区', '平谷区', '怀柔区','大兴区','昌平区','顺义区','通州区','房山区','门头沟区','海淀区','石景山区','丰台区','朝阳区','延庆区','密云区']}, {'上海': ['徐汇区', '长宁区', '静安区', '普陀区', '虹口区', '杨浦区', '闵行区', '宝山区', '嘉定区', '浦东新区', '金山区', '松江区', '黄浦区', '奉贤区', '崇明区']}, {'广东': ['广州市', '东莞市', '河源市', '江门市', '茂名市', '韶关市', '佛山市', '珠海市', '梅州市', '汕尾市', '清远市', '揭阳市']}, {'深圳': ['罗湖区', '福田区', '南山区', '宝安区', '龙岗区', '盐田区', '龙华区', '坪山区']}, {'湖南': ['湘潭','长沙','株洲','衡阳','邵阳','岳阳','常德','张家界','益阳','郴州','永州','怀化','娄底','湘西']}, ], '美国': [ {'纽约': ['曼哈顿', '布鲁克林', '布朗克斯', '昆斯', '里士满']}, {'华盛顿': ['西雅图市', '奥林匹亚市', '斯波坎', '塔科马', '贝尔维尤', '雷德蒙德', '阿伯丁']}, {'洛杉矶': ['洛杉矶县', '橙县', '河滨县', '圣伯纳丁县', '文图拉县']}, {'旧金山': ['海浪琴', '西沃德街', '普雷西迪奥']} ], '英国': [ {'伦敦': ['伦敦市', '威斯敏斯特市', '肯辛顿-切尔西', '哈默尔史密斯-富勒姆']}, {'爱丁堡': ['爱丁堡城堡', '皇家英里大道', '圣吉尔斯大教堂', '司各特纪念塔', '卡尔顿山']}, {'利物浦': ['萨迪奥·马内', '迪沃克·奥里吉', '多米尼克·索兰克', '塔伊沃·阿沃尼伊']}, ], '日本': [ {'东京': ['新宿区', '文京区', '中央区', '台东区', '港区', '品川区', '丰岛区', '葛饰区']}, {'大阪': ['大阪市', '堺市', '丰中市', '松原市']}, {'名古屋': ['热田区', '昭和区', '千种区', '瑞穗区']}, {'横滨': ['青叶区', '港北区', '港南区', '鹤见区']} ], } entirely_quit = 0 #全局退出变量 print('社会调查:(全局选项: q.退出、b.返回上一级、其他.重新输入)'.center(100,'-')) while 1: counter = 1 state_value = [] va = select.keys() for i in va: temp = str(counter)+'.'+i counter +=1 state_value.append(temp) state_option = '、'.join(state_value) state = input('请选择你要奋斗的城市(选项:{}):\n>>>:'.format(state_option)) if state == 'b': continue if state == 'q': break if int(state) in set(range(1,len(state_value)+1)): key0 = [*select.keys()][int(state)-1] # 所选的国家 key1 = [*select.values()][int(state)-1] # print(key1) region_value = [] counter = 1 for i in key1: temp,= i value_temp = str(counter)+'.'+temp counter += 1 region_value.append(value_temp) region_option = '、'.join(region_value) while 1: region = input('您是选择在【{}】的(选项:{})发展事业:\n>>>:'.format(key0,region_option)) if region == 'b': break if region == 'q': entirely_quit = 1 break if int(region) in set(range(1, len(region_value) + 1)): key3, = [*select.values()][int(state)-1][int(region)-1] # print(key3) val, = [*select.values()][int(state)-1][int(region)-1].values() # print(val) counter = 1 locality_value = [] for i in val: temp = str(counter)+'.'+i counter +=1 locality_value.append(temp) # print(locality_value) locality_option = '、'.join(locality_value) # print(locality_option) while 1: locality= input('你要在【{}】的【{}】的(选项:{})那个地方发展事业:\n>>>:'.format(key0,key3,locality_option)) if locality == 'b': break if locality == 'q': entirely_quit = 1 break if int(locality) in set(range(1, len(locality_value) + 1)): value = val[int(locality)-1] print('我们已经确认到你想工作的地方是:【{}-{}-{}】'.format(key0,key3,value)) entirely_quit = 1 break else: print('输入错误:请重新输入!') if locality == 'b': continue if entirely_quit: break else: print('输入错误:请重新输入!') if region == 'b': continue if entirely_quit: break else: print('输入错误:请重新输入!') print('已经退出,感谢你的参与!'.center(100,'-'))