#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. 方程的解_NOI导刊2010提高

    方程的解 给定x,求\(a_1+a_2+...+a_k=x^x\ mod\ 1000\)的正整数解解的组数,对于100%的数据,k≤100,x≤2^31-1. 解 显然x是可以快速幂得到答案的,而该问 ...

  2. JSON的新方法--parse()和stringify()

    // eval 可以解析任何字符串变成js var str = 'function show() {console.log(1)}'; eval(str); show(); // parse 只能解析 ...

  3. Android 中正则表达式工具类

    package com.example.administrator.magiclamp.utils; import java.util.regex.Pattern; /** * 校验器:利用正则表达式 ...

  4. 将VMware虚拟机系统镜像导入到ESXi vSphere

    原因: 公司有一个VMware虚拟机的交叉编译镜像,但主机性能不行,因此需要将镜像导入ESXi vSphere 过程: 1.将WMware虚拟机克隆; 2.将虚拟机的多个磁盘文件合并成一个;(否则vS ...

  5. fabric知识梳理图解

    https://blog.csdn.net/weixin_42117918/article/details/85230754 1.整体架构 2.交易流程 流程步骤: 应用程序通过SDK发送请求到Pee ...

  6. docker搭建elk

    docker run -d -p 5601:5601 -p 9200:9200  -p 5044:5044 -v /opt/data/elk-data:/var/lib/elasticsearch - ...

  7. C++学习笔记(一):C++基础知识

    一.C++基础知识 新的数据类型 C语言中的数据类型 C++中新的数据类型 思考:新的数据类型有什么好处?请看下面的代码: 可以见得:新的类型使整个程序更加简洁,程序变得易读易懂!这个就是bool类型 ...

  8. 字符编码 ASCII、Unicode和UTF-8的关系

    摘抄自廖雪峰 教程 字符编码 我们已经讲过了,字符串也是一种数据类型,但是,字符串比较特殊的是还有一个编码问题. 因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理.最早的计算机 ...

  9. java第7次作业

    interface Pet{ public String getName() ; public String getColor() ; public int getAge() ; } class Ca ...

  10. 根据不同访问设备跳转到PC页面或手机页面

    目前很多网站都是采用了响应式自适应页面的设计了,根据访问设备的不同,显示不同的内容.但是还是会有一些节奏比较慢的网站,还是PC页面和手机PAD页面不同的访问域名.正好我这里有个需要,同一个域名要根据不 ...