zoukankan      html  css  js  c++  java
  • Python字典实现三级菜单

     1 ################################################
     2 # Task Name: 三级菜单                           #
     3 # Description:打印省、市、县三级菜单             #
     4 #              可返回上一级                      #
     5 #               可随时退出程序                   #
     6 #----------------------------------------------#
     7 # Author:Oliver Lee                           #
     8 ################################################
     9 
    10 zone = {
    11     '山东' : {
    12         '青岛' : ['四方','黄岛','崂山','李沧','城阳'],
    13         '济南' : ['历城','槐荫','高新','长青','章丘'],
    14         '烟台' : ['龙口','莱山','牟平','蓬莱','招远']
    15     },
    16     '江苏' : {
    17         '苏州' : ['沧浪','相城','平江','吴中','昆山'],
    18         '南京' : ['白下','秦淮','浦口','栖霞','江宁'],
    19         '无锡' : ['崇安','南长','北塘','锡山','江阴']
    20     },
    21     '浙江' : {
    22         '杭州' : ['西湖','江干','下城','上城','滨江'],
    23         '宁波' : ['海曙','江东','江北','镇海','余姚'],
    24         '温州' : ['鹿城','龙湾','乐清','瑞安','永嘉']
    25     },
    26     '安徽' : {
    27         '合肥' : ['蜀山','庐阳','包河','经开','新站'],
    28         '芜湖' : ['镜湖','鸠江','无为','三山','南陵'],
    29         '蚌埠' : ['蚌山','龙子湖','淮上','怀远','固镇']
    30     },
    31     '广东' : {
    32         '深圳' : ['罗湖','福田','南山','宝安','布吉'],
    33         '广州' : ['天河','珠海','越秀','白云','黄埔'],
    34         '东莞' : ['莞城','长安','虎门','万江','大朗']
    35     }
    36 }
    37 province_list = list(zone.keys())             #省列表
    38 # flag = False
    39 # flag1 = False
    40 while True:
    41     print("".center(50,'*'))
    42     for i in province_list:
    43         print(province_list.index(i)+1,i)       #打印省列表
    44     pro_id = input("请输入省编号,或输入q(quit)退出:")   #省ID
    45     if pro_id.isdigit():
    46         pro_id = int(pro_id)
    47         if pro_id > 0 and pro_id <= len(province_list):
    48             pro_name = province_list[pro_id-1]     #根据省ID获取省名称
    49             city_list = list(zone[pro_name].keys())    #根据省名称获取对应的值,从新字典中获取key,即市列表
    50             while True:
    51                 print("".center(50,'*'))
    52                 for v in city_list:
    53                     print(city_list.index(v)+1,v)       #打印市列表
    54                 city_id = input("请输入市编号,或输入b(back)返回上级菜单,或输入q(quit)退出:")
    55                 if city_id.isdigit():
    56                     city_id = int(city_id)
    57                     if city_id > 0 and city_id <= len(city_list):
    58                         city_name = city_list[city_id-1]    #根据市ID获取市名称
    59                         town_list = zone[pro_name][city_name]   #根据省名称获取对应的值,从新字典中获取值,即县列表
    60                         while True:
    61                             print("".center(50,'*'))
    62                             for j in town_list:
    63                                 print(town_list.index(j)+1,j)
    64                             back_or_quit = input("输入b(back)返回上级菜单,或输入q(quit)退出:")
    65                             if back_or_quit == 'b':
    66                                 break                #终止此层while循环,跳转到上一层While。
    67                             elif back_or_quit == 'q':
    68                                # flag1 = True
    69                                # break               #根据标志位结束程序。
    70                                 exit()
    71                             else:
    72                                 print("输入非法!")
    73                     else:
    74                         print("编号%d不存在。"%city_id)
    75                 elif city_id == 'b':
    76                     break
    77                 elif city_id == 'q':
    78                     # flag = True
    79                     # break
    80                     exit()
    81                 else:
    82                     print("输入非法!")
    83                 # if flag1:
    84                 #     break
    85         else:
    86             print("编号%d不存在。"%pro_id)
    87     elif pro_id == 'q':
    88         break
    89     else:
    90         print("输入非法!")
    91     # if flag or flag1:
    92     #     break
  • 相关阅读:
    require笔札
    zepto_core
    2016年规划
    说说Q.js中的promise的历史
    jQuery.extend
    jQuery.core_02
    javascript之this指针
    javascript之闭包
    javascript之作用域链
    jvavascript之变量对象
  • 原文地址:https://www.cnblogs.com/pyramid1001/p/5803294.html
Copyright © 2011-2022 走看看