首页 > 代码库 > 进入三级目录习题讲解
进入三级目录习题讲解
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 = menulist = []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 = menuhistory = []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 = menulist = []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 = menulist = []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
进入三级目录习题讲解
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。