#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author: linghanchujian
"""
多级菜单
三级菜单的实现
可以依次选择进入各个子菜单
也可以返回上级菜单
所需知识 列表 字典
"""
"""
三级菜单字典
"""
DictionaryMenu = {
‘山东‘ : {
‘青岛‘ : [‘四方‘,‘黄岛‘,‘崂山‘,‘李沧‘,‘城阳‘],
‘济南‘ : [‘历城‘,‘槐荫‘,‘高新‘,‘长青‘,‘章丘‘],
‘烟台‘ : [‘龙口‘,‘莱山‘,‘牟平‘,‘蓬莱‘,‘招远‘]
},
‘安徽‘ : {
‘合肥‘ : [‘蜀山‘,‘庐阳‘,‘包河‘,‘经开‘,‘新站‘],
‘芜湖‘ : [‘镜湖‘,‘鸠江‘,‘无为‘,‘三山‘,‘南陵‘],
‘蚌埠‘ : [‘蚌山‘,‘龙子湖‘,‘淮上‘,‘怀远‘,‘固镇‘]
},
‘广东‘ : {
‘深圳‘ : [‘罗湖‘,‘福田‘,‘南山‘,‘宝安‘,‘布吉‘],
‘广州‘ : [‘天河‘,‘珠海‘,‘越秀‘,‘白云‘,‘黄埔‘],
‘东莞‘ : [‘莞城‘,‘长安‘,‘虎门‘,‘万江‘,‘大朗‘]
}
}
"""
通过抛出异常来判断输入的编号是否合法
"""
def Abnormal(Num):
try:
int(Num)
return True
except ValueError:
return False
"""
获取省级
"""
def Province():
for i,j in enumerate (DictionaryMenu):
print(str(i+1)+"、"+j)
LevelOneOptions = input("请选择上面一级菜单列表的序号(n 退出): ")
if LevelOneOptions== ‘n‘:
exit()
else:
if Abnormal(LevelOneOptions):
OneOptions = int(LevelOneOptions)
# print(LevelOneCount+1)
if OneOptions>0 and OneOptions<(i+2):
City(OneOptions-1)
else:
print("请输入0~~"+str(i+2)+"之间的数")
print("---------------------------------------")
Province()
else:
print("编号不合法!!")
print("---------------------------------------")
Province()
pass
"""
获取市级
"""
def City(Options):
for i,j in enumerate(DictionaryMenu):
if i == Options:
for n,k in enumerate(DictionaryMenu[j]):
print(str(n+1)+"、"+k)
SecondLevelOptions = input("请选择上面二级菜单列表的序号(b/n 返回上级/退出): ")
if SecOndLevelOptions== "n":
exit()
elif SecOndLevelOptions== "b":
Province()
return ;
else:
if Abnormal(SecondLevelOptions):
TwoOptions = int(SecondLevelOptions)
# print(LevelOneCount+1)
if TwoOptions > 0 and TwoOptions <(n + 2):
Area(Options,TwoOptions - 1)
else:
print("请输入0~~" + str(n + 2) + "之间的数")
print("---------------------------------------")
City(Options)
else:
print("编号不合法!!")
print("---------------------------------------")
City(Options)
pass
"""
获取区级
"""
def Area(Options,TwoOptions):
for i,j in enumerate(DictionaryMenu):
if i == Options:
for n,k in enumerate(DictionaryMenu[j]):
if n == TwoOptions:
for c,v in enumerate(DictionaryMenu[j][k]):
print(str(c+1)+"、"+v)
ThreeOptions = input("上面就是三级菜单全部内容(b/n 返回上级/退出): ")
if ThreeOptiOns== "b":
City(Options)
return ;
else:
exit()
pass
print("欢迎来到三级菜单!!")
Province()