Python自动化3.0-------学习之路-------三级菜单程序!
三级菜单程序
1、字典使用
2、while循环
3、for循环
4、break和continue
map = { "北方":{ "北京":{"朝阳":["朝阳一","朝阳二"],"东城":["东城一","东城二"]}, "上海":{"徐汇":["徐汇一","徐汇二"],"虹桥":["虹桥一","虹桥二"]}, }, "南方":{ "广州":{"天河":["天河一","天河二"],"番禺":["番禺一","番禺二"]}, "深圳":{"罗湖":["罗湖一","罗湖二"],"福田":["福田一","福田二"]}, }, } be_info = ''' ------------------------- -------welcome----------- ------------------------- -----区域:---------- ''' print(be_info)#输出一级菜单,即区域 for i in map: print(i) print("------------------") flag = False for i in range(3): #只有三次输入区域的机会 if flag: #标记退出最外一层循环的指令 break area_name = input("你想查询上述哪个区域:") #玩家输入要查询到区域 if area_name in map: #判断玩家输入的区域是否在字典中 area1 = map[area_name] city = area1.keys() #获取区域的键值,即区域下面包含的城市 print(city) #测试看区域下面的城市是否正确 while True: if flag: # 跳出while循环的标记 break print("-----------它包含了如下一些城市----------") for j in city:#依次输出这些城市 print(j) print("-----------------------------------") city_name = input("你想查询哪个城市:")#玩家输入要查询的城市 if city_name in city: countryName = map[area_name][city_name]#输出城市下一级菜单下包含的县 while True: print("----------包含了这些县---------") for i in countryName: print(i)#依次输出这些玩家指定城市下面的县 print("----------------------------------") place_name = input("你想查询哪个县")#输入要查询的县 if place_name in countryName: placeName = map[area_name][city_name][place_name] print("---------包含了这些地方----------") for i in placeName:#打印县级下面包含的地方 print(i) else: print("您输入的县有误,请重新输入")#如果县级输入错误,则提示重新输入 continue back_or_quit = input("请问是否退出?按b:Back是返回上一级菜单;按q:Exit是退出整个程序")#是否返回上一级 if back_or_quit == "q": flag = True # 用于本层循环的标记 break # 跳出while内循环 if back_or_quit == "b": continue # 跳出当次循环,重新进入下一次循环,输入包含的县,并输入要查询的县 # if flag: # 跳出外循环的条件满足 # break # if city_name not in city: print("您输入的城市不对,请重新输入:")#如果玩家输入的城市不在字典中,则提示重新输入 continue # else: # 上面的3次for循环正常执行完毕,else才会执行,如果是不正常退出(break),else不会执行 print("3次输入错误,程序退出")#如果玩家超过三次输入错误的区域,那么退出程序