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次输入错误,程序退出")#如果玩家超过三次输入错误的区域,那么退出程序

浙公网安备 33010602011771号