需求:
- 三级菜单
- 可依次选择进入各子菜单
Readme:
1.菜单选择顺序:省份(一级)-->下属市(二级)-->下属县(三级)
2.在各级菜单都可直接退出程序,在市县级可以按b返回一级菜单
3.完全是自己独立完成的,实现方法和网上不一样,感觉自己的方法比较笨
流程图:
代码:
#-*- coding:utf-8 -*- #Author:Sam list = {'廣東省': {'揭陽市': ['揭東縣', '惠來縣'], '清遠市': ['陽山縣', '連山縣']}, '湖南省': {'株洲市': ['攸縣', '茶陵縣'], '長沙市': ['長沙縣', '瀏陽市']} } province = [] #省份列表 city = [] #市列表 county = [] #县列表 while True: for index,i in enumerate(list.keys()): print(index,i) #将下标和省份一起列出,方便后面用数字选择菜单 province.append(i) #加入省份列表 user_choice_province = input("請選擇省份,按b返回,按q退出>>>:") if user_choice_province.isdigit(): #判断输入是否为数字 user_choice_province = int(user_choice_province) #将输入转换为整数 if user_choice_province >= 0 and user_choice_province < len(list): #判断选择是否正确 choice_province = province[user_choice_province] #选择的省份生成一个变量 city_list = list.get(choice_province) #利用字典属性获取对应省份下属市,并生成新字典 for index, i in enumerate(city_list): #利用上面的新字典,将下标和下属市列出供选择 print(index, i) city.append(i) #生成市列表,方便下面操作 user_choice_city = input("請選擇市,按b返回,按q退出>>>>:") if user_choice_city.isdigit(): user_choice_city = int(user_choice_city) if user_choice_city >=0 and user_choice_city < len(city): choice_city = city[user_choice_city] county_list = city_list.get(choice_city) for index,i in enumerate(county_list): print(index,i) user_choice_county = input("請選擇縣,按b返回,按q退出>>>>:") if user_choice_county.isdigit(): user_choice_county = int(user_choice_county) if user_choice_county >=0 and user_choice_county <len(county_list): print(county_list[user_choice_county]) elif user_choice_county == 'b': break elif user_choice_county == 'q': exit("退出") else: print("输入错误") elif user_choice_city == 'b': break elif user_choice_city == 'q': exit("退出") else: print("输入错误") elif user_choice_province == 'b': break elif user_choice_province == 'q': exit("退出") else: print("输入错误") else: exit("退出")