首页 > 其他 > 详细

进入三级目录习题讲解

时间:2017-03-30 19:40:19      阅读:232      评论:0      收藏:0      [点我收藏+]

1 先看菜单定义的形式, 用字典形式逐渐递归

menu ={}

menu = {"1":{},"2":{},"3":{}}

menu = {"1":

       {"11":{},"12":{},"13":{}}

    ,"2":{}

    ,"3":{}}

就是每个value的格式和menu的格式是一样的

2 先打印一个列表

    for i in menu:
        print(i)
    chose = input(">>")

3 继续往下走

    if chose in menu:
        menu = menu[chose]

4 要使整个能够循环起来

while True:
    for i in menu:
        print(i)
    chose = input(">>")

    if chose in menu:
        menu = menu[chose]

5 考虑返回问题

  要实现返回的功能我提供的是 通过另一个 变量来记录之前访问过的路径

list = []

while True:
    for i in menu:
        print(i)
    chose = input(">>")

    if chose in menu:
        list.append(menu)
        menu = menu[chose]

6 实现返回

map = menu
list = []

while True:
    for i in menu:
        print(i)
    chose = input(">>")

    if chose in menu:
        list.append(map)
        menu = menu[chose]
    if chose == ‘b‘:
        if list == []:
            map = menu
        else:
            map = list[len(list)-1]
            list.pop()

7 实现退出

map = menu
history = []

while True:
    for i in menu:
        print(i)
    chose = input(">>")

    if chose in menu:
        list.append(map)
        menu = menu[chose]
    if chose == ‘b‘:
        if list == []:
            map = menu
        else:
            map = list[len(list)-1]
            list.pop()
    if chose == ‘q‘:
        print("再见!")
        break

8 修复两个问题

map = menu
list = []

while True:
    for i in map:
        print(i)
    chose = input("请输入查询的地区名字:")
    if chose in map:
        if len(map[chose])==0:
            print("没有内容了, 请返回上一层..")
        list.append(map)
        map = map[chose]
    if chose == ‘b‘:
        if list == []:
            map = menu
        else:
            map = list[len(list)-1]
            list.pop()
    if chose == ‘q‘:
        print("再见!")
        break

9 整个程序 

技术分享
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

menu = {
    ‘北京‘:{
        ‘海淀‘:{
            ‘五道口‘:{
                ‘soho‘:{},
                ‘网易‘:{},
                ‘google‘:{}
            },
            ‘中关村‘:{
                ‘爱奇艺‘:{},
                ‘汽车之家‘:{},
                ‘youku‘:{},
            },
            ‘上地‘:{
                ‘百度‘:{},
            },
        },
        ‘昌平‘:{
            ‘沙河‘:{
                ‘老男孩‘:{},
                ‘北航‘:{},
            },
            ‘天通苑‘:{},
            ‘回龙观‘:{},
        },
        ‘朝阳‘:{},
        ‘东城‘:{},
    },
    ‘上海‘:{
        ‘闵行‘:{
            "人民广场":{
                ‘炸鸡店‘:{}
            }
        },
        ‘闸北‘:{
            ‘火车战‘:{
                ‘携程‘:{}
            }
        },
        ‘浦东‘:{},
    },
    ‘山东‘:{},
}

print("=====欢迎查询地区地图=====")

map = menu
list = []

while True:
    for i in map:
        print(i)
    chose = input("请输入查询的地区名字:")
    if chose in map:
        if len(map[chose])==0:
            print("没有内容了, 请返回上一层..")
        list.append(map)
        map = map[chose]
    if chose == ‘b‘:
        if list == []:
            map = menu
        else:
            map = list[len(list)-1]
            list.pop()
    if chose == ‘q‘:
        print("再见!")
        break
View Code

进入三级目录习题讲解

原文:http://www.cnblogs.com/weihuchao/p/6647215.html

踩
(0)
赞
(0)
   
举报
评论 一句话评论(0)
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!