#python之三级目录低配版

menu = {
'北京':{
'朝阳':{
'国贸':{
'CICC':{ },
'HP':{ },
'渣打银行':{ },
'CCTV':{ },
},
'望京':{
'陌陌':{ },
'奔驰':{ },
'':{ },
},
'三里屯':{
'优衣库':{ },
'apple':{ },
},
},
'昌平':{
'沙河':{
'老男孩':{ },
'阿泰包子':{ },
},
'天通苑':{
'链家':{ },
'我爱我家':{ },
},
'回龙观':{ },
},
'海淀':{
'五道口':{
'谷歌':{ },
'网易':{ },
'搜狐':{ },
'sogo':{ },
'快手':{ },
},
'中关村':{
'youku':{ },
'iqiyi':{ },
'汽车之家':{ },
'新东方':{ },
'QQ':{ },
}
},
},
'上海':{
'浦东':{
'陆家嘴':{
'CICC':{ },
'高盛':{ },
'摩根':{ },
},
'外滩':{ }, },
'闵行':{ },
'静安':{ },
},
'山东':{
'济南':{ },
'德州':{
'乐陵':{
'丁坞镇':{ },
'城区':{ },
},
'平原':{ },
},
'青岛':{ },
},
} back_flag=False
exit_flag=False
while not back_flag and not exit_flag:
for key in menu:
print(key)
choice=input("1>>:").strip()
if choice=="q":
exit_flag=True
if choice in menu:
while not back_flag and not exit_flag:
for key2 in menu[choice]:
print(key2)
choice2=input("2>>:").strip()
if choice2 =='q':
exit_flag=True
if choice2 =='b':
back_flag=True
if choice2 in menu[choice]:
while not back_flag and not exit_flag:
for key3 in menu[choice][choice2]:
print(key3)
choice3=input("3>>:").strip()
if choice3=='q':
exit_flag=True
if choice3=='b':
back_flag=True
if choice3 in menu[choice][choice2]:
while not back_flag and not exit_flag:
for key4 in menu[choice][choice2][choice3]:
print(key4)
choice4=input("4>>:").strip()
print('last level')
if choice4=='q':
exit_flag=True
if choice4=='b':
back_flag=True
else:
back_flag=False
else:
back_flag=False
else:
back_flag=False
#python之三级目录高级版
menu = {
'北京':{
'朝阳':{
'国贸':{
'CICC':{ },
'HP':{ },
'渣打银行':{ },
'CCTV':{ }
},
'望京':{
'陌陌':{ },
'奔驰':{ },
'':{ }
},
'三里屯':{
'优衣库':{ },
'apple':{ }
}
},
'昌平':{
'沙河':{
'老男孩':{ },
'阿泰包子':{ }
},
'天通苑':{
'链家':{ },
'我爱我家':{ }
},
'回龙观':{ },
},
'海淀':{
'五道口':{
'谷歌':{ },
'网易':{ },
'搜狐':{ },
'sogo':{ },
'快手':{ }
},
'中关村':{
'youku':{ },
'iqiyi':{ },
'汽车之家':{ },
'新东方':{ },
'QQ':{ }
}
}
},
'上海':{
'浦东':{
'陆家嘴':{
'CICC':{ },
'高盛':{ },
'摩根':{ }
},
'外滩':{ } },
'闵行':{ },
'静安':{ }
},
'山东':{
'济南':{ },
'德州':{
'乐陵':{
'丁坞镇':{ },
'城区':{ }
},
'平原':{ }
},
'青岛':{ }
}
}
current_layer = menu
parent_layers=[ ] #保存所有父级,最后一个元素永远是父亲
while True:
for key in current_layer:
print(key)
choice=input(">>>:").strip()
if len(choice) == 0: continue
if choice in current_layer:
# parent_layer=current_layer #改之前相当于护父亲
parent_layers.append(current_layer)
current_layer=current_layer[choice] #改成子层
elif choice == "b":
if parent_layers:
current_layer=parent_layers.pop()#弹出列表最后一个元素,并返回该元素的值
else:
print("无此项")

python之三级目录的更多相关文章

  1. python编辑三级目录

    一.需求分析 三级目录要能够实现以下要求: 显示根目录,任何子目录中都可以通过输入b字符来返回根目录 任何子目录中都可以通过输入q字符来返回上一级目录 主目录进入子目录后,系统能够打印子目录,根据指打 ...

  2. 用python选择及显示三级目录,可返回上层目录以及随时跳出。

    # -*- coding: utf-8 -*-"""Created on Fri Jul 29 09:43:38 2016 @author: yinggang" ...

  3. python学习笔记目录

    人生苦短,我学python学习笔记目录: week1 python入门week2 python基础week3 python进阶week4 python模块week5 python高阶week6 数据结 ...

  4. python打怪之路【第三篇】:利用Python实现三级菜单

    程序: 利用Python实现三级菜单 要求: 打印省.市.县三级菜单 可返回上一级 可随时退出程序 coding: menu = { '北京':{ '朝阳':{ '国贸':{ 'CICC':{}, ' ...

  5. python遍历一个目录,输出所有文件名

    python遍历一个目录,输出所有文件名 python os模块 os import os  def GetFileList(dir, fileList):  newDir = dir  if os. ...

  6. python之工作目录和文件引用

    1.参考 如何获得Python脚本所在目录的位置 Python 相对导入与绝对导入 还没细看 2.不考虑exe打包 sys.path[0] #顶层运行脚本的绝对目录 os.path.split(os. ...

  7. Python数据分析学习目录

    python数据分析学习目录 Anaconda的安装和更新 矩阵NumPy pandas数据表 matplotlib-2D绘图库学习目录                      

  8. 【转】python文件和目录操作方法大全(含实例)

    python文件和目录操作方法大全(含实例) 这篇文章主要介绍了python文件和目录的操作方法,简明总结了文件和目录操作中常用的模块.方法,并列举了一个综合实例,需要的朋友可以参考下一.python ...

  9. python获取指定目录下所有文件名os.walk和os.listdir

    python获取指定目录下所有文件名os.walk和os.listdir 觉得有用的话,欢迎一起讨论相互学习~Follow Me os.walk 返回指定路径下所有文件和子文件夹中所有文件列表 其中文 ...

随机推荐

  1. 构建可扩展的微博架构(qcon beijing 2010演讲)#高并发经验值#

    构建可扩展的微博架构(qcon beijing 2010演讲) http://timyang.net/architecture/microblog-design-qcon-beijing/ 互联网架构 ...

  2. HTL里面使用sling model的时候传参问题

    Question: Can we pass in parameters? <div data-sly-use.myClass=”${ ‘mysite.myproject.HeaderCompon ...

  3. JSP 标准标签库JSTL

    JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能. JSTL支持通用的.结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签,SQL标签. 除了这些,它还提供 ...

  4. hbase-0.92.1表备份还原

    原表结构和数据 hbase(main):021:0* describe 'test' DESCRIPTION ENABLED {NAME => ', TTL = true > ', COM ...

  5. 将多窗体应用程序改造为仿Chrome形式的简易方法

    需求 在我们现有的ERP应用中,他是基于WinForm设计的,在早期的设计中,我们每打开一个作业,就会新建一个窗口,就像这样: 当我们打开很多的作业时,用户要通过Windows的任务栏慢慢找到,当然, ...

  6. Java的四个标记接口:Serializable、Cloneable、RandomAccess和Remote接口

    一.概述 标记接口是一些没有属性和方法的接口,也是一种设计思想.Java中的一个标记接口表示的的是一种类的特性,实现了该标记接口的类则具有该特性.如实现了Serializable接口的类,表示这个类的 ...

  7. react native练习

    import React, { Component } from 'react' import { Platform, StyleSheet, Text, View,Image ,FlatList} ...

  8. flask基础---第三篇

    flask中request的一些方法 首先from flask import request 1.request.path 2.request.host 3.request.host_url from ...

  9. 修改 input中的placeholder的字体样式和颜色

    placeholder属性是css3中新增加的属性, 由于是新加入的属性因此对各大浏览器都不兼容: 因此在使用的时候要加兼容性 火狐:-moz-placeholder { /* Mozilla Fir ...

  10. Spring———bean的创建方式,注入方式,复杂类型注入 概括

    Spring相关概念和类    1.IOC             inverse of control    控制反转   反转了创建对象的方式            以前:new 对象,管理和维护 ...