zoukankan      html  css  js  c++  java
  • 三级登陆 @1 省市县乡四级 @2 可以返回上一级 @3可以立即退出

     1 #!coding: utf-8
     2 menu={
     3   '河北':{
     4            '邯郸':{
     5                     '涉县':{
     6                              '偏店':{},
     7                              '井店':{}
     8                            },
     9                     '武安':{
    10                              '武安某镇1':{},
    11                              '武安某镇2':{}
    12                            }
    13                    },
    14            '石家庄':{
    15                     '庄县1':{
    16                               '庄县1某镇1':{},
    17                               '庄县1某镇2':{}
    18                             },
    19                     '庄县2':{
    20                               '庄县2某镇1':{},
    21                               '庄县2某镇2':{}
    22                             }
    23                     }
    24         }
    25                                         ,
    26   '北京':{
    27            '西城区':{
    28                    '菜市口':{
    29                             '真功夫':{},
    30                             '新网':{}
    31                             },
    32                    '宣武门':{
    33                             '移动网':{},
    34                             '地铁站':{}
    35                             }
    36                    },
    37            '海淀区':{}
    38 
    39   '北京':{
    40            '西城区':{
    41                    '菜市口':{
    42                             '真功夫':{},
    43                             '新网':{}
    44                             },
    45                    '宣武门':{
    46                             '移动网':{},
    47                             '地铁站':{}
    48                             }
    49                    },
    50            '海淀区':{}
    51 
    52      },
    53   '山西':{}
    54 }
    55 current_layer = menu     #动态变量
    56 parrent_layers= []      
    57 while True:
    58   for key in current_layer:
    59     print key                  #1----将整个大的列表中键打印出,河北,北京和山西;2----打印出邯郸  石家庄  3----打印出涉县,武安 4----打印出,偏店,井店
    60   choice = raw_input(">>>:").strip()   1----例如选择河北,choice=河北     2------邯郸     3------涉县  4------偏店
    61   if choice in current_layer:
    62     parrent_layers.append(current_layer) #1----parrent_layers现在是原来大的列表;  2---加上邯郸,石家庄    3---加上涉县  武安 4-----加上偏店,井店  -------关键处,一级一级返回;
    63     current_layer = current_layer[choice] #1---这步current_layer将成为邯郸,石家庄;2---成为涉县,武安;   3----成为偏店,井店  4----无内容啦
    64   elif choice == 'b':  #定义的返回上一级;
    65     if parrent_layers:
    66       current_layer = parrent_layers.pop()  #pop的用法很好,从末尾到首,一次pop掉;
    67   elif choice == 'q':
    68     break
    69   else:
    70     print "无此项"
  • 相关阅读:
    UVALive 5983 MAGRID DP
    2015暑假训练(UVALive 5983
    poj 1426 Find The Multiple (BFS)
    poj 3126 Prime Path (BFS)
    poj 2251 Dungeon Master 3维bfs(水水)
    poj 3278 catch that cow BFS(基础水)
    poj3083 Children of the Candy Corn BFS&&DFS
    BZOJ1878: [SDOI2009]HH的项链 (离线查询+树状数组)
    洛谷P3178 [HAOI2015]树上操作(dfs序+线段树)
    洛谷P3065 [USACO12DEC]第一!First!(Trie树+拓扑排序)
  • 原文地址:https://www.cnblogs.com/lixinliang/p/8284649.html
Copyright © 2011-2022 走看看