话不多说,直奔代码

# 要处理的字典
dic1 = {
'北京': {
'东城':
{
'沙河': ['沙河机场', '链家'],
'天通苑': ['北方明珠', '天通尾货']
},
'朝阳':
{
'花家地': ['朝阳公园', '望京soho'],
'北小河': ['北小河公园', '北京中学']
}
},
'上海': {
'虹桥':
{
'虹桥机场': ['超市', '特产店', '水吧'],
'东方明珠': ['电影院', '游泳馆', '餐馆']
},
'浦东':
{
'景秀路': ['世纪公园', '立交桥'],
'中环路': ['鲁迅公园', '同济大学']
}
},
'河北': {
'石家庄':
{
'行唐': ['东正', '阳关'],
'赵县': ['赵州桥', '高村乡']
},
'唐山':
{
'滦南县': ['司各庄镇', '安各庄镇'],
'玉田县': ['玉田镇', '亮甲店镇']
}
}
}
# 方法一:
tag=True
while tag:
menu1=menu
for key in menu1:
print(key) choice1=input('The First Layer>>: ').strip()
if choice1 == 'b':break
if choice1 == 'q':
tag = False
break
if choice1 not in menu1:continue while tag:
menu2=menu1[choice1]
for key in menu2:
print(key) choice2 = input('The Second Layer>>: ').strip()
if choice2 == 'b':break
if choice2 == 'q':
tag=False
break
if choice2 not in menu2:continue while tag:
menu3 = menu2[choice2] for key in menu3:
print(key) choice3 = input('The Third Layer>>: ').strip()
if choice3 == 'b':break
if choice3 == 'q':
tag=False
break
if choice3 not in menu3: continue while tag:
menu4 = menu3[choice3] for key in menu4:
print(key) choice4 = input('The Fourth Layer>>: ').strip()
if choice4 == 'b':break
if choice4 == 'q':
tag=False
break if choice4 not in menu4: continue
current_layer = dic1
parent_layer = [] # 用来放置父级的key组成的list
choose_end=['沙河机场', '链家','北方明珠', '天通尾货','朝阳公园', '望京soho','北小河公园', '北京中学','超市', '特产店', '水吧',
'电影院', '游泳馆', '餐馆','世纪公园', '立交桥','鲁迅公园', '同济大学','东正', '阳关','赵州桥', '高村乡','司各庄镇',
'安各庄镇','玉田镇', '亮甲店镇',
] Tag = True
while Tag: print('\033[31m%s \033[0m' % '请输入序号'.ljust(20, '*'))
print('\033[31m***输入back返回上一级菜单,或者quit退出***\033[0m') for i in current_layer:
print(i) choose = input('>>>:').strip() if choose in current_layer:
if choose in choose_end:
print('\033[31m%s \033[0m' % '已经到最后一页'.center(40, '*'))
continue
else:
parent_layer.append(current_layer)
current_layer = current_layer[choose]
# else:
# print('\033[31m%s \033[0m' % '已经到最后一页'.center(40, '*')) elif choose == 'back':
if len(parent_layer) != 0:
current_layer = parent_layer.pop()
else:
print('\033[31m%s \033[0m' % '已经到达最上级菜单'.center(40, '*')) elif choose == 'quit':
print('\033[31m Bye~Bye~^_^ \033[0m')
break else:
print('\033[31m%s \033[0m' % '输入有误,请重新输入'.center(40, '*'))

Python实现简单的三级菜单的更多相关文章

  1. Python进阶实战之三级菜单

    目录 一.Python进阶实战之三级菜单 1.1 面条版 1.2 文艺青年版 一.Python进阶实战之三级菜单 打印省.市.县三级菜单 可返回上一级 可随时退出程序 1.1 面条版 menu = { ...

  2. Python学习之编写三级菜单(Day1,作业二)

    作业二:多级菜单 三级菜单 可依次进入各子菜单 在各级菜单中输入B返回上一级Q退出程序 知识点:字典的操作,while循环,for循环,if判断 思路: 1.开始,打印一级菜单让用户进行选择(可以输入 ...

  3. python第四天 三级菜单新思路

    今天是一个坎,在做三级菜单时卡住了,因为想要简洁的代码,就要用到递归函数,卡的不要不要的!不过最后在同学老师的提点帮助下,还是解决了! 2017-5-10发现之前的代码有BUG今天 修改了! 作业要求 ...

  4. Python3学习之路~2.5 简单的三级菜单程序

    程序:三级菜单 需求: 1.打印省.市.县三级菜单2.可返回上一级3.可随时退出程序 代码1: data={ "山东":{ "济南":["历下区&qu ...

  5. python基础之省份三级菜单

    菜单 menu = { #定义一个字典 '北京':{ '海淀':{ '五道口':{ 'soho':{}, '网易':{}, 'google':{} }, '中关村':{ '爱奇艺':{}, '汽车之家 ...

  6. python入门编程之三级菜单编程

    菜单实现功能输入一层显示下一层菜单不论在哪层输入b返回上一层不论在哪层输入q退出菜单此代码通过利用字典的知识可以实现_Author_ = 'jc'data = { '北京':{ '昌平':{ '沙河' ...

  7. Python学习之字典--三级菜单

    效果图: 实现代码: dic = { '人物':{ '帽子':{'前年玄铁帽'}, '武器':{'屠龙宝刀'} }, '属性':{ '力量':{35}, '敏捷':{66} }, '任务':{ '主线 ...

  8. Python之路-(三级菜单)

    data = { '北京':{ '海淀':{ '五道口':{ 'soho':{}, '网易':{}, 'google':{} }, '中关村':{ '爱奇艺':{}, '汽车之家':{}, 'youk ...

  9. Python学习5,三级菜单实例

    _author_ = "Happyboy" data = { '北京':{ "昌平":{ "沙河":["Happyboy" ...

随机推荐

  1. Android 的自动化测试资源

    环境预备阶段: win7下jdk+eclipse android应用开发环境建立 android genymotion模拟器怎么使用以及和google提供的模拟器性能对比

  2. MySQL DBA教程全套视频资料

    MySQL基础入门.MySQL多实例安装与企业应用场景.MySQL应用管理及进阶实战操作.MySQL乱码问题及字符集实战.MySQL备份-增量备份及数据恢复基础实战.MySQL主从复制原理及实战部署. ...

  3. 背景新增属性和css渐变及倒影

    背景新增属性和css渐变及倒影 一.background新增属性 background-size:指定对象的背景图像的尺寸大小. background:url() 0 0,url() 0 100%;多 ...

  4. python安装第三方库

    在编写爬虫程序时发现unsolved import 一时不解,以为是ide出问题了,其实是没有安装第三方库导致的. 于是到https://pypi.python.org/pypi/requests/去 ...

  5. Mac HomeBrew 常用命令

    mac 系统常用的软件安装工具就是 homebrew, 其最常用的命令如下: 安装(需要 Ruby):ruby -e "$(curl -fsSL https://raw.github.com ...

  6. redis-cli的一些有趣也很有用的功能

    redis-cli我们最常用的两个参数就是-h.-p.-a选项,分配用来指定连接的redis-server的host和port. 通过redis-cli –help发现,redis-cli还提供了其他 ...

  7. 制作Linux登录欢迎界面

    1.登录提示语: 将提示语写入/etc/motd 文件 _ooOoo_ o8888888o 88" . "88 (| -_- |) O\ = /O ____/`---'\____ ...

  8. CSS奇思妙想图形(心形、气泡三角形、切角、梯形、饼图等)

    今天看到一篇不错文章,在原来CSS3图形创建基础上扩展了很多. 这里记录总结下 心形 原理:利用 圆形 和 正方形实现 HTML: <div class="heartShaped&qu ...

  9. css中的背景色渐变以及背景图的定位

    单纯的背景色渐变: background: -webkit-gradient(linear, 0 0, 0 100%, color-stop(0, #fff), color-stop(1, #ddd) ...

  10. 第二周c语言PTA作业留

    6-1 计算两数的和与差(10 分) 本题要求实现一个计算输入的两数的和与差的简单函数. 函数接口定义: void sum_diff( float op1, float op2, float psum ...