用python选择及显示三级目录,可返回上层目录以及随时跳出。
# -*- coding: utf-8 -*-
"""
Created on Fri Jul 29 09:43:38 2016
@author: yinggang
"""
'''制作一个三级目录,利用列表和字典满足以下功能:
1 选择主目录后弹出下级菜单继续选择
2 在任一菜单下 按b返回,按终止选择
'''
'''第一个比较长的代码,第一个博客。wish you sttruggle for your dreamming life!'''
# -*- coding: utf-8 -*-
"""
Created on Fri Jul 29 09:43:38 2016 @author: yinggang
"""
'''制作一个三级目录,利用列表和字典满足以下功能:
1 选择主目录后弹出下级菜单继续选择
2 在任一菜单下 按b返回,按终止选择
'''
#一级菜单,省份
province = ['陕西省','甘肃省','湖南省'] #各个省份的城市,二级菜单目录
shanxi_province = ['西安市','咸阳市','宝鸡市','榆林市']
gansu_province = ['兰州市','武威市','酒泉市']
hunan_province = ['长沙市','郴州市']
#关联省-市
city = {'陕西省':shanxi_province,'甘肃省':gansu_province,'湖南省':hunan_province} #各个城市的分区,依次为西安 咸阳 宝鸡 榆林 兰州 武威 酒泉 长沙 郴州
area_xi_an = ['未央区','莲湖区']
area_xian_yang = ['实验中学','武功县']
area_bao_ji = ['宝鸡中学']
area_yu_lin = ['市区','米脂县','榆林镇']
area_lan_zhou = ['贴','胡']
area_wu_wei = ['小雨','xiaoyu']
area_jiu_quan = ['酒泉市','玉门市']
area_chang_sha = ['岳麓区','金沙']
area_chen_zhou = ['1区','2区'] #将市-区关联起来
area = {'西安市':area_xi_an,'咸阳市':area_xian_yang,'宝鸡市':area_bao_ji,'榆林市':area_yu_lin,'兰州市':area_lan_zhou,'武威市':area_wu_wei,'酒泉市':area_jiu_quan,'长沙市':area_chang_sha,'郴州市':area_chen_zhou} #定义一个循环函数,方便跳出 #定义一个break——flag变量,来直接跳出多层循环
def loop():
print('你已经退出')
break_flag = False
while True:
if break_flag:
break
print(province)
province_choice = input('输入123,选择相应省份.q直接退出该应用,b返回上级目录\n')
if province_choice == 'q' or province_choice == 'b':
loop()
break
while True:
#显示二级菜单,并让用户选择
city_xianshi = city[province[int(province_choice)-1]]
if break_flag:
break
print(city_xianshi)
city_choice = input('输入1234,对应相应城市,q直接退出该应用,b返回上级目录\n')
if city_choice == 'b':
break
if city_choice == 'q':
loop()
break_flag = True
break
area_xianshi = area[city_xianshi[int(city_choice)-1]]
print(area_xianshi)
while True:
#选择区
area_choice = input('输入1234,对应相应区或县,q直接退出该应用,b返回上级目录\n')
if area_choice == 'b':
break
elif area_choice == 'q':
break_flag = True
loop()
break
else:
print('your home is %s %s %s'%(province[int(province_choice)-1],city_xianshi[int(city_choice)-1],area_xianshi[int(area_choice)-1]))
break_flag = True
loop()
break
用python选择及显示三级目录,可返回上层目录以及随时跳出。的更多相关文章
- Python进阶实战之三级菜单
目录 一.Python进阶实战之三级菜单 1.1 面条版 1.2 文艺青年版 一.Python进阶实战之三级菜单 打印省.市.县三级菜单 可返回上一级 可随时退出程序 1.1 面条版 menu = { ...
- PHP遍历目录返回统计目录大小实例
分享一个 PHP遍历目录并返回统计目录大小的方法.代码: <?php $dirname = "test1"; //mkdir($dirname); //遍历一层目录 func ...
- Ubuntu下安装Python3.6并在终端输入Python就能显示Python3.6
Ubuntu17.04自带Python2.7与Python3.5.3的版本,由于Python2与Python3有着一些差距可能需要安装更新Python3的版本,并且切换默认的Python解释器. ...
- Apache显示目录列表及icons目录的问题
今天想部署下开源项目pig,发现它的mysql需要5.7.8 +,为了能支持多个版本并且可以方便切换,所以选择了phpstudy_pro 刚开始Apache不支持目录访问 修改配置 <Virtu ...
- python实现随机复制若干个文件到新目录
python实现随机复制若干个文件到新目录 1说明 1.1 目的 随机选择一个文件下的若干个文件,并将文件复制到新文件夹下 1.2 要求 需要将random_select_and_copy_file. ...
- python matplotlib 中文显示参数设置
python matplotlib 中文显示参数设置 方法一:每次编写代码时进行参数设置 #coding:utf-8import matplotlib.pyplot as pltplt.rcParam ...
- [Python笔记][第三章Python选择与循环]
1月28日学习 Python选择与循环 选择结构 多分枝选择结构 if 表达式 1: 语句块 1 elif 表达式 2: 语句块 2 elif 表达式 3: 语句块 3 ... else : 语句块 ...
- Android 基础一 TextView,Style样式,Activity 传值,选择CheckBox 显示密码
1.修改TextView字体 mTextView = (TextView) findViewById(R.id.textview1); mTextView.setText("I am her ...
- python matplotlib 中文显示乱码设置
python matplotlib 中文显示乱码设置 原因:是matplotlib库中没有中文字体.1 解决方案:1.进入C:\Anaconda64\Lib\site-packages\matplot ...
随机推荐
- C# ToString格式大全
C# 货币 2.5.ToString("C"); // ¥2.50 // D 10进制数 25.ToString("D5"); // 25000 // E ...
- JAVA数据类型与DB2、Oracle、Sybase以及SQL Server对应关系
java.sql.Types Java IBM DB2 Oracle Sybase SQL-SERVER BIGINT java.lang.long BIGINT NUMBER (38, ...
- bzoj2657: [Zjoi2012]旅游(journey)
求树的直径 真是太神辣 #include<cstdio> #include<cstring> #include<cstdlib> #include<algor ...
- bzoj3907: 网格
http://www.cnblogs.com/Tunix/p/4354348.html #include<cstdio> #include<cstring> #include& ...
- winform 加密 解密 分类: WinForm 2014-05-16 15:05 400人阅读 评论(0) 收藏
界面显示: 加密: 解密: 代码实现: public string EncryptString(string str) { #region 加密程序 ...
- DM8168 GPIO驱动与測试程序
本次測试针对GPIO1进行,挑选了GP1[31],引脚的复用默认的就是GPIO 还是老规矩,贴上driver.c,Makefile,test.c: dm8168_gpio.c: #include &l ...
- Netty源代码学习——Included transports(变速箱)
Transport API核心: Channel介面 类图表示Channel含有Pipeline和Config接口,pipeline上一节有所介绍. Channel是线程安全的,这表示在多线环境下操作 ...
- 第八条——覆盖equals方法时需遵守的通用约定
1)自反性 对于任何非null的引用值x,x.equals(x)必须返回true.---这一点基本上不会有啥问题 2)对称性 对于任何非null的引用值x和y,当且仅当x.equals(y)为true ...
- shell脚本实现冒泡排序 分类: 学习笔记 linux ubuntu 2015-07-10 14:16 79人阅读 评论(0) 收藏
手动输入一行字符串,并对其排序. 脚本如下: #!/bin/bash #a test about sort echo "please input a number list" re ...
- javascript中的简单三角函数