python之三级菜单编写

python学习网 2017-09-27 17:36:02

要求:1.打印市、区、街道三级菜单      2.按b可随时返回上一级      3.按q可随时退出程序

 1 dict={'北京':{'海淀区':['中关村','北太平庄','西三旗'], '昌平区':['回龙观','霍营','沙河'],'朝阳区':['酒仙桥','望京','将台']},
 2       '上海':{'浦东新区':['陆家嘴','周家渡','塘桥'],'宝山区':['罗店镇','大场镇','杨行镇'],'虹口区':['广中路','曲阳路','欧阳路']},
 3       '广州':{'白云区':['曲沃','侯马','临汾'],'天河区':['运城','新绛','闻喜'],'南沙区':['太原','小店','杏花岭']}}
 4 dict_list = list(dict.keys())
 5 while True:
 6     for i in dict_list:
 7         print(i)
 8     town=input('请输入你的工作地点或输入q(quit)退出:')
 9     while not town.strip():
10         town = input('请再次输入你的工作地点或输入q(quit)退出:')
11     if town in dict_list:
12         area_list=list(dict[town].keys())
13         #while True:
14         #for b in area_list:
15             #print(b)
16         while True:
17             for b in area_list:
18                 print(b)
19             area=input('请选择区,或输入b(back)返回上级菜单,或输入q(quit)退出:')
20             while not town.strip():
21                 area = input('请正确输入:')
22             if area in area_list:
23                 row_list=dict[town][area]
24                 #for a in dict[town][area]:
25                     #print(a)
26                 while True:
27                         for a in dict[town][area]:
28                             print(a)
29                         row=input('请选择街道,或输入b(back)返回上级菜单,或输入q(quit)退出:')
30                         while not row.strip():
31                             row = input('请正确输入:')
32                         if row in dict[town][area]:
33                             print ('您的信息是:\n',town,'(市)',area,'(区)',row,'(路)')
34                             exit()
35                         elif row == 'b':
36                             break
37                         elif row == 'q':
38                             exit()
39 
40                         else:
41                             print('您输入的地点有误 请重新输入')
42             elif area == 'b':      ###break  终止此次循环  跳到上一个循环
43                 break
44             elif area == 'q':    ####直接退出程序
45                 exit()
46 
47             else:
48                 print('您输入的地点有误 请重新输入')
49     elif town == 'q':
50         break
51 
52     else:
53         print('您输入的地点有误 请重新输入')
View Code

 

dict={'北京':{'海淀区':['中关村','北太平庄','西三旗'], '昌平区':['回龙观','霍营','沙河'],'朝阳区':['酒仙桥','望京','将台']},
      '上海':{'浦东新区':['陆家嘴','周家渡','塘桥'],'宝山区':['罗店镇','大场镇','杨行镇'],'虹口区':['广中路','曲阳路','欧阳路']},
      '广州':{'白云区':['曲沃','侯马','临汾'],'天河区':['运城','新绛','闻喜'],'南沙区':['太原','小店','杏花岭']}}
dict_list = list(dict.keys())              ##将北上广以列表形式显示出来
while True:
    for i in dict_list:              
        print(i)            #打印市
    town=input('请输入你的工作地点或输入q(quit)退出:')
    while not town.strip():
        town = input('请再次输入你的工作地点或输入q(quit)退出:')
    if town in dict_list:              #判断是否在列表中
        area_list=list(dict[town].keys())   #显示区信息 以列表形式
        #while True:
        #for b in area_list:
            #print(b)
        while True:
            for b in area_list:         #循环读取区信息
                print(b)
            area=input('请选择区,或输入b(back)返回上级菜单,或输入q(quit)退出:')
            while not town.strip():
                area = input('请正确输入:')
            if area in area_list:                   
                row_list=dict[town][area]       #街道信息
                #for a in dict[town][area]:
                    #print(a)
                while True:
                        for a in dict[town][area]:
                            print(a)
                        row=input('请选择街道,或输入b(back)返回上级菜单,或输入q(quit)退出:')
                        while not row.strip():
                            row = input('请正确输入:')
                        if row in dict[town][area]:
                            print ('您的信息是:\n',town,'(市)',area,'(区)',row,'(路)')
                            exit()
                        elif row == 'b': 
                            break             #结束此次循环 自动跳到上一层循环
                        elif row == 'q':
                            exit()           #直接终止程序

                        else:
                            print('您输入的地点有误 请重新输入')
            elif area == 'b':      ###break  终止此次循环  跳到上一个循环
                break
            elif area == 'q':    ####直接退出程序
                exit()

            else:
                print('您输入的地点有误 请重新输入')
    elif town == 'q':
        break

    else:
        print('您输入的地点有误 请重新输入')

 

阅读(764) 评论(0)