一.需求分析

  三级目录要能够实现以下要求:

  1. 显示根目录,任何子目录中都可以通过输入b字符来返回根目录
  2. 任何子目录中都可以通过输入q字符来返回上一级目录
  3. 主目录进入子目录后,系统能够打印子目录,根据指打印信息进入下级目录或者返回

二.代码实现

# 定义字典包括,国家,州(省),市
dic = {'中国': {'河北': ('石家庄', '邢台', '衡水',), '北京': ('昌平', '海淀', '朝阳',), '山西': ('太原', '大同', '运城',)},
'美国': {'纽约州': ('纽约市', '罗彻斯特', '水牛城',), '加利福利亚州': ('洛杉矶', '好莱坞', '阿罕布拉',), '宾夕法尼亚州': ('费城', '伯利恒', '华盛顿',)},
'澳大利亚': {'维多利亚州': ('墨尔本', '吉朗', '巴里迪',), '西澳大利亚州': ('马扎尔', '柏斯', '费里曼图',), '南澳大利亚州': ('阿德莱德', '内陆', '巴罗莎'), }}
# print(dic['中国']['河北'])
dic_dir = {1: "中国",
2: "美国",
3: "澳大利亚",
} # 定义国家跟序号的对应关系
dic_dirCity = {1: ("河北", "北京", "山西"),
2: ("纽约州", "加利福利亚州", "宾夕法尼亚州",),
3: ("维多利亚州", "西澳大利亚州","南澳大利亚州",)
}# 省(州)对应关系 def Directory():#定义三级目录函数 DirectoryPos = 0#记录当前目录位置
while True:
if DirectoryPos == 0:
for temp in dic_dir:
print(temp,":",dic_dir[temp])#打印根目录
getCountry= int(input("Please Chonse The Country:"))#输入字符转换成int类型变量
while getCountry<1 or getCountry>3:#合法性判断
getCountry = int(input("Input Error Please Reinput:"))
DirectoryPos +=1
if DirectoryPos == 1:
num = 0
for temp in dic_dirCity[getCountry]:
num += 1
print(num,":",temp)#打印子目录
getProvince = input("Please Chonse The Province\nInupt q Is Return\nInput b Back To Main:")
if getProvince == 'q' or getProvince == 'b':#条件判断,进入下级目录或者返回
DirectoryPos -= 1
else:
DirectoryPos += 1
getProvince = int(getProvince)
if DirectoryPos == 2:
for temp in dic[dic_dir[getCountry]] [dic_dirCity[getCountry][getProvince-1]]:#打印子目录
print(temp)
getNum = input("Input q Is Return\nInput b Is Back To Main:")
if getNum == 'q':#条件判断
DirectoryPos -= 1
if getNum == 'b':
DirectoryPos =0
# print("The Game Is Over !") Directory()

  程序运行结果图如下:

   

  此程序没有特别运行条件,只要复制黏贴到PyCharm3.0以上的版本下即可使用,不支持PyCharm3.0以下的版本,此程序在输入条件的合法性判断上有bug由于时间原因暂不处理,后期如有时间会及时更新,有兴趣的朋友也可以自己改一下试试。

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

  1. python之三级目录

    #python之三级目录低配版 menu = { '北京':{ '朝阳':{ '国贸':{ 'CICC':{ }, 'HP':{ }, '渣打银行':{ }, 'CCTV':{ }, }, '望京': ...

  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博文目录 ░ 本部分为老猿CSDN全部博文的汇总(含转载部分),所有文章在此未进行归类,仅按文章标题排序,方便关键字查找.本部分内容将至少以周为单位定期更新,可能不包含发布 ...

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

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

  6. NSIS:禁止选择安装路径和编辑安装目录

    原文 NSIS:禁止选择安装路径和编辑安装目录 如果你想在安装包中禁止用户选择安装路径和编辑安装目录,有两种方式.   第一种:注释或删除安装目录选择页面 1 ;!insertmacro MUI_PA ...

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

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

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

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

  9. Python数据分析学习目录

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

随机推荐

  1. HDU 1007 Quoit Design(经典最近点对问题)

    传送门: http://acm.hdu.edu.cn/showproblem.php?pid=1007 Quoit Design Time Limit: 10000/5000 MS (Java/Oth ...

  2. 【Javascript-基础-ecma6】ecma6学习笔记(持续更新)

    makdown语法手册API String 新特性的方法 基本不支持IE浏览器 String.fromCodePoint(6特性) String.prototype.codePointAt(6特性) ...

  3. Oracle分析函数巧妙使用

    在 Oracle中使用Sql必须弄懂分析函数 Oracle开发专题之:分析函数(OVER) 1 Oracle开发专题之:分析函数2(Rank, Dense_rank, row_number) 6 Or ...

  4. Web | DOM基本操作

    基本概念 文档对象模型 (DOM) 是HTML和XML文档的编程接口.它提供了对文档的结构化的表述,并定义了一种方式可以使程序对该结构进行访问,从而改变文档的结构,样式和内容.DOM 将文档解析为一个 ...

  5. Field userService in com.wuji.controller.UserController required a bean of type 'com.wuji.service.UserService' that could not be found

    Field userService in com.wuji.controller.UserController required a bean of type 'com.wuji.service.Us ...

  6. 前端提交表单两种验证方式记录 jq或h5 required属性

    JQuery: <form id="form"> <input type="text" name="aaa"> &l ...

  7. 如何创建一个新的vue项目

    一.cnpm安装 1.百度node官网,进入官网下载安装包安装好node环境 2.成功后打开cmd命令行工具,执行node-v命令,查看node版本号,如果能输出版本号说明安装成功 3.推荐使用淘宝 ...

  8. js时间与毫秒互相转换

    1)日期转换为毫秒 如果格式是:yyyy/mm/dd hh:mm:ss可以直接转换.var oldTime = (new Date("2018/07/09 14:13:11")). ...

  9. 新增时json类型报错

    新增时出错:如下 实体类中字段类型没有对应上,vue页面中修改跳转页面的路径:使用params...

  10. [译]C语言实现一个简易的Hash table(4)

    上一章我们解释了Hash table中最重要的hash函数,并用伪代码和C语言实现了一个我们自己的hash函数,hash函数中碰撞是无法避免的,当发生碰撞时我们改如何有效的处理呢?这章我们就来讲解下. ...