三级菜单操作

1.首先是自己写的一个复杂版的,但是好理解

# __author__:'sunmt'

#date: 2018/7/27

china = {
'山东':{
'菏泽':['鄄城','郓城'],
'济南':['开发区','大明湖区']
},
'浙江':{
'杭州':['滨江','西湖','萧山'],
'温州':['皮革厂','腾和']
}
}
start= True
province_list = []
city_list = []

while start:
print("欢迎来到中国地图".center(20,'='))
for i ,prov in enumerate(china.keys(),1):
print(i,prov)
province_list.append(prov)
print("若要退出请输入q")
province = input("请输入你要查看的省份编号:").strip()
if province == 'q'or province == 'Q':
break
if province.isdigit():
province = int(province)
if province >0 and province <len(province_list)+1:
while start:
for j ,cit in enumerate(china[province_list[province-1]].keys(),1):
print(j,cit)
city_list.append(cit)
print("输入q退出,输入b返回上一层".center(20,'='))
city_num = input("请输入你要查看的城市编号:").strip()
if city_num == 'q' or city_num == 'Q':
start = False
elif city_num == 'b' or city_num == 'B':
del city_list[:]
del province_list[:]
break
elif city_num.isdigit():
city_num = int(city_num)
if city_num > 0 and city_num < len(city_list) + 1:
while start:
for county in china[province_list[province-1]][city_list[city_num-1]]:
print(county)
print("输入q退出,输入b返回上一层".center(20,'='))
play = input("请输入你的操作:").strip()
if play == 'q' or play == 'Q':
start = False
elif play == 'b' or play == 'B':
del city_list[:]
break
else:
print("输入错误".center(20,'='))






else:
print("城市编号输入错误".center(50,'='))
else:
print("输入错误".center(20,'='))

else:
print("省份编号输入错误".center(20,'='))
else:
print("数字输入错误".center(20,'='))


2.学了文件操作后写了一个简单版的



with open('省市县', 'r', encoding='utf-8') as f: #把三级菜单放在‘省市县文件中’
    china = f.read()
china = eval(china) #将字符串格式转换成字典格式

current_dic = china

parent_list = []

while True:
for key in current_dic:
print(key)
choice = input("请输入:").strip()
if choice in current_dic:
parent_list.append(current_dic)
current_dic = current_dic[choice]

elif choice == 'b' or choice == 'B':
if parent_list:
current_dic = parent_list.pop()
else:
print("已到最顶层")
elif choice == 'q' or choice == 'Q':
break
else:
print("无此项")




posted @ 2018-08-27 10:21  sunmt大圣  阅读(252)  评论(0)    收藏  举报