程序: 利用Python实现三级菜单

要求:
  打印省、市、县三级菜单
  可返回上一级
  可随时退出程序

coding:

menu = {
'北京':{
'朝阳':{
'国贸':{
'CICC':{},
'HP':{},
'渣打银行':{},
'CCTV':{},
},
'望京':{
'陌陌':{},
'奔驰':{},
'':{},
},
'三里屯':{
'优衣库':{},
'apple':{},
},
},'海淀':{
"五道口":{
"谷歌":{},
"网易":{},
"Sohu":{},
"Sogo":{},
"快手":{},
},
"中关村":{
"youku":{},
"Iqiyi":{},
"汽车之家":{},
"新东方":{},
"QQ":{},
}
},
},
'上海':{
"浦东":{
"陆家嘴":{
"CICC":{},
"高盛":{},
"摩根":{},
},
"黄埔":{},
},
"闵行":{},
"静安":{},
}
} current_layer = menu #实现动态循环
parent_layers = [] #保存所有父级,最后一个元素永远都是父亲级
while True:
for key in current_layer:
print(key)
choice = input("请输入项,b返回上一级,q退出!>>>:").strip()
if len(choice) == 0:continue
if choice in current_layer:
parent_layers.append(current_layer) #在进入下一层之前,把当前层(也就是下一层的父级)
#下一次loop,当用户选择b的时候,就可以直接取列表的最后一个值出来就OK了
current_layer = current_layer[choice] #将当前层改成了子层
elif choice == "b":
if parent_layers:
current_layer = parent_layers.pop() #取出列表的最后一个值,因为它就是当前层的父级
elif choice == "q": #输入q时,退出程序
exit()
else:
print("无此项")

python打怪之路【第三篇】:利用Python实现三级菜单的更多相关文章

  1. 我的Python升级打怪之路【三】:Python函数

    函数 在函数之前,我们一直遵循者:面向过程编程,即:根据业务逻辑从上到下实现功能,开发过程中最常见的就是粘贴复制.代码就没有重复利用率. 例如:有好多的重复的代码 if 条件: 发送指令 接收结果 e ...

  2. python成长之路第三篇(4)_作用域,递归,模块,内置模块(os,ConfigParser,hashlib),with文件操作

    打个广告欢迎加入linux,python资源分享群群号:478616847 目录: 1.作用域 2.递归 3.模块介绍 4.内置模块-OS 5.内置模块-ConfigParser 6.内置模块-has ...

  3. Python学习之路【第一篇】-Python简介和基础入门

    1.Python简介 1.1 Python是什么 相信混迹IT界的很多朋友都知道,Python是近年来最火的一个热点,没有之一.从性质上来讲它和我们熟知的C.java.php等没有什么本质的区别,也是 ...

  4. Python学习之路【第一篇】:Python简介与入门

    Python简介 一.什么是Python Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言. Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言 ...

  5. python成长之路-----day1-----作业(登录程序和三级菜单)

    作业: 作业1:用户登录 1)程序说明: a.用户输入密码验证成功然后打印欢迎信息 b.如果密码错误,用户登录失败,提示用户,密码错误 c.用户输入密码错误3次,则用户锁定 d.当用户多次输入不存在的 ...

  6. python成长之路第三篇(1)_初识函数

    目录: 函数 为什么要使用函数 什么是函数 函数的返回值 文档化函数 函数传参数 文件操作(二) 1.文件操作的步骤 2.文件的内置方法 函数: 一.为什么要使用函数 在日常写代码中,我们会发现有很多 ...

  7. python成长之路第三篇(3)_内置函数及生成器迭代器

    打个广告欢迎加入linux,python资源分享群群号:478616847 目录: 1.lambda表达式 2.map内置函数 3.filter内置函数 4.reduce内置函数 5.yield生成器 ...

  8. python成长之路第三篇(2)_正则表达式

    打个广告欢迎加入linux,python资源分享群群号:478616847 目录: 1.什么是正则表达式,python中得正则简介 2.re模块的内容 3.小练习 一.什么是正则表达式(re) 正则表 ...

  9. Python人工智能之路 - 第三篇 : PyAudio 实现录音 自动化交互实现问答

    Python 很强大其原因就是因为它庞大的三方库 , 资源是非常的丰富 , 当然也不会缺少关于音频的库 关于音频, PyAudio 这个库, 可以实现开启麦克风录音, 可以播放音频文件等等,此刻我们不 ...

  10. Python之路(第三篇):Python基本数据类型字符串(二)

    一.基本数据类型1.字符串 str字符串方法介绍(二)a --expandtabs( ) expandtabs( ) 把字符串中的 tab 符号('\t')转为空格参数默认为8,注意字符串原有的空格也 ...

随机推荐

  1. P1941 飞扬的小鸟

    此题很容易写出方程,由以前的知识可以迁移得,本题可以用完全背包的方法进行优化,使用滚动数组即可得到答案. //莫名奇妙60分.不知道什么细节出了错. #include <bits/stdc++. ...

  2. phpcms v9的url优化

    nginx配置重定向 # nginx rewrite rule rewrite ^/show-(.+)-(.+)-(.+).html$ /index.php?m=content&c=index ...

  3. 使用Visual Studio 2015开发Android 程序

    环境配置: 操作系统:win 7 64位 IDE:Visual Studio 2015 SDK:installer_r24.3.3-windows 安装前提: 编辑hosts文件(在附件可下载)因为安 ...

  4. syslog日志系统

    目前,linux依旧使用syslogd作为日志监控进程,而在主流的linux发行版中依旧使用sysklog这个比较老的日志服务器套件.从前一篇日志可以看到,对其进行必要的配置能减少很多麻烦,并且可更有 ...

  5. AFNetWorking 队列请求

    我们在开发过程中,经常会遇到有些页面不止一个网络请求,有时候需要两个三个甚至更多,这个时候我们就需要队列请求,下边是GET请求的多个请求放在队列里边: NSURL *url = [NSURL URLW ...

  6. LeetCode Number of 1 Bits

    原题链接在这里:https://leetcode.com/problems/number-of-1-bits/ 题目: Write a function that takes an unsigned ...

  7. Jmeter进行数据库压测

    一.配置并发用户 新建线程组,设置线程数,Ramp-up和循环次数 二.添加JDBC请求 先选中JDBC Users(线程组),右键选中ADD-Config Element--JDBC Connect ...

  8. Jmeter工作原理

  9. ROW_NUMBER

    16:23 2015/4/16 删除重复数据,连续被两位同事问到完全相同的重复记录如何删除只保留一条 create table del_samerecords (id )) go insert int ...

  10. iOS,图片处理

    1.旋转图片 2.缩放图片 3.截取图片指定区域 4.祛除图片白色背景,弄成透明png 5.将UIView转化为UIImage,并转化为data和base64 6.将视频一帧(CMSampleBuff ...