码迷,mamicode.com
首页 > 其他好文 > 详细

【作业】三级目录

时间:2017-09-03 11:04:37      阅读:118      评论:0      收藏:0      [点我收藏+]

标签:image   return   erro   删除   需求   老师   strip()   北京   str   

实现需求:
技术分享

老师代码:
技术分享

l_city ={
    ‘北京1‘:
          {‘昌平1‘:
              {‘沙河1‘:[‘老男孩‘,‘阿泰包子‘],
               ‘天通苑1‘:[‘臭豆腐‘,‘烤肉串‘]
               },

          ‘朝阳1‘:
              {‘朝阳门1‘:[‘吉事果‘,‘老酸奶‘],
               ‘红领巾桥1‘:[‘麻辣烫‘,‘旋风土豆‘]
               },
          ‘海淀1‘:

              {‘颐和园1‘:[‘景区‘,‘还是景区‘],
               ‘玉泉山1‘:[‘大树‘,‘还是大树‘]
              }

          }
    ,
    ‘北京2‘:
         {‘昌平2‘:
              {‘沙河2‘: [‘老男孩‘, ‘阿泰包子‘],
               ‘天通苑2‘: [‘臭豆腐‘, ‘烤肉串‘]
               },

          ‘朝阳2‘:
              {‘朝阳门2‘: [‘吉事果‘, ‘老酸奶‘],
               ‘红领巾桥2‘: [‘麻辣烫‘, ‘旋风土豆‘]
               },
          ‘海淀2‘:

              {‘颐和园2‘: [‘景区‘, ‘还是景区‘],
               ‘玉泉山2‘: [‘大树‘, ‘还是大树‘]
               }

         }
    ,
    ‘北京3‘:
         {‘昌平3‘:
              {‘沙河3‘: [‘老男孩‘, ‘阿泰包子‘],
               ‘天通苑3‘: [‘臭豆腐‘, ‘烤肉串‘]
               },

          ‘朝阳3‘:
              {‘朝阳门3‘: [‘吉事果‘, ‘老酸奶‘],
               ‘红领巾桥3‘: [‘麻辣烫‘, ‘旋风土豆‘]
               },
          ‘海淀3‘:
              {‘颐和园3‘: [‘景区‘, ‘还是景区‘],
               ‘玉泉山3‘: [‘大树‘, ‘还是大树‘]
               }

         }

}

以上是字典部分
下面才是代码部分

ways = []

def new_dic(zidian):
    # print(y[0].keys())                                            #用于调试
    print(‘you can chose:‘,zidian.keys())
    key = input(">>:").strip()

    try:                                                            #错误输入就退出
        if key in zidian:                                           #如果传入的key值符合规范
            sub_zidian = zidian.get(key)                            #取得key所包含的字典,并赋值给新的字典
            if type(sub_zidian) is dict:
                ways.append(zidian)                                 # 保存初始路径
                return new_dic(sub_zidian)                          #返回字典函数进行下一轮
            else:
                print(sub_zidian)
                print(‘已经到底了,后面选项无法选择‘)                    #字典底层元素为列表,无法继续选择,退出

        elif key == ‘b‘:                                            #如果传入的值是b,返回上层
            # print (len(y),y[-1].keys()keys,y[-2].keys())          #用于调试
            if len(ways)>1:
                print(‘====>‘)
                x=ways.pop()

                return new_dic(x)                                   #y路径库判断,根据路径库当中路径数量,判断是否到顶层
                                                                    #如果没有到顶层,并且y中有两个或以上元素,
                                                                    # 将x赋值为倒数第二个路径(前一级列表),删除最后一个路径,返回
            elif len(ways)==1:                                      #如果到顶层,提供退出提示
                print(‘顶层目录,按“q”退出‘)
                return new_dic(ways[0])
        elif key == ‘q‘:exit()
        else:
            print(‘wrong input!‘)
            return new_dic(zidian)

    except AttributeError:
        print(‘ending‘)



new_dic(l_city)

【作业】三级目录

标签:image   return   erro   删除   需求   老师   strip()   北京   str   

原文地址:http://www.cnblogs.com/scott-lv/p/7468922.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!