python关于三级导航菜单的问题

             Python 的导航菜单 三级*(不完全,因为没有跳出循环)

编码开始:

    #首先将这个三级导航表示出来 =》字典

   menus = {'山东':{

'青岛': ['四方', '黄岛', '崂山', '李沧', '城阳'],

'济南': ['历城', '槐荫', '高新', '长青', '章丘'],

'烟台': ['龙口', '莱山', '牟平', '蓬莱', '招远']

}}

  

 for index,key in enumrate(menus.keys()):

       print index,key #此处得到的便是一级栏目

choice_1 = raw_input("请输入省的序列号:").strip()

if choice_1.isdigit():

   choice_1 = int(choice_1)

   key_1 = menus.keys()[choice_1]

   #得到了二级栏目 那么如果想要获取三级 就需要进一步循环遍历来得到内容

        for index, key in enumrate(menus[key_1])

            choice_2 = raw_input('输入市级的序列号:').strip()

            if choice_2.isdigit():

                 choice_2 = int(choice_2)

                 key_2 = menus[key_1].keys()[choice_2]

 

 

 

 

 

               以上均为自己手敲和感悟。。。。。。。。。

 

 

--------------------------------------------------------------------------------------------------------------------------------------------------------------

 

 

 

 

 

 

menus = {
'山东': {
'青岛': ['四方', '黄岛', '崂山', '李沧', '城阳'],
'济南': ['历城', '槐荫', '高新', '长青', '章丘'],
'烟台': ['龙口', '莱山', '牟平', '蓬莱', '招远']
},
'江苏': {
'苏州': ['沧浪', '相城', '平江', '吴中', '昆山'],
'南京': ['白下', '秦淮', '浦口', '栖霞', '江宁'],
'无锡': ['崇安', '南长', '北塘', '锡山', '江阴']
},
'浙江': {
'杭州': ['西湖', '江干', '下城', '上城', '滨江'],
'宁波': ['海曙', '江东', '江北', '镇海', '余姚'],
'温州': ['鹿城', '龙湾', '乐清', '瑞安', '永嘉']
},
'安徽': {
'合肥': ['蜀山', '庐阳', '包河', '经开', '新站'],
'芜湖': ['镜湖', '鸠江', '无为', '三山', '南陵'],
'蚌埠': ['蚌山', '龙子湖', '淮上', '怀远', '固镇']
},
'广东': {
'深圳': ['罗湖', '福田', '南山', '宝安', '布吉'],
'广州': ['天河', '珠海', '越秀', '白云', '黄埔'],
'东莞': ['莞城', '长安', '虎门', '万江', '大朗']
}
}

# 怎样去显示他的三级菜单

'''
01.首先要对其进行循环,来输出字典下的一级菜单:kay 或者 value
enumerate的用法多用于在for循环中得到计数
enumerate参数为可遍历的变量
'''
exit_flag = False
while True:
for index, key in enumerate(menus.keys()):
print index, key

choice_1 = raw_input("请选择一个省的序号:").strip()
if choice_1.isdigit():
choice_1 = int(choice_1)
key_1 = menus.keys()[choice_1]

while True:
for index, key in enumerate(menus[key_1]):
print index, key
choice_2 = raw_input("请输入市下的数字:").strip()
if choice_2.isdigit():
choice_2 = int(choice_2)
key_2 = menus[key_1].keys()[choice_2]

#向后缩进 Tab 向前缩进 Shift+Tab
while not exit_flag:
for index, key in enumerate(menus[key_1][key_2]):
print index, key
choice_3 = raw_input('请选择或者跳出当前循环:').strip()
if choice_3.isdigit():
print "哎呦!不错呦!!"
elif choice_3 == 'quit':
exit_flag = True
elif choice_3 == 'back':
break

else:
print '------------------!'

 

posted @ 2017-04-28 14:05  紫枫的天空  阅读(345)  评论(0)    收藏  举报