话不多说,直奔代码

  1. # 要处理的字典
  2. dic1 = {
  3. '北京': {
  4. '东城':
  5. {
  6. '沙河': ['沙河机场', '链家'],
  7. '天通苑': ['北方明珠', '天通尾货']
  8. },
  9. '朝阳':
  10. {
  11. '花家地': ['朝阳公园', '望京soho'],
  12. '北小河': ['北小河公园', '北京中学']
  13. }
  14. },
  15. '上海': {
  16. '虹桥':
  17. {
  18. '虹桥机场': ['超市', '特产店', '水吧'],
  19. '东方明珠': ['电影院', '游泳馆', '餐馆']
  20. },
  21. '浦东':
  22. {
  23. '景秀路': ['世纪公园', '立交桥'],
  24. '中环路': ['鲁迅公园', '同济大学']
  25. }
  26. },
  27. '河北': {
  28. '石家庄':
  29. {
  30. '行唐': ['东正', '阳关'],
  31. '赵县': ['赵州桥', '高村乡']
  32. },
  33. '唐山':
  34. {
  35. '滦南县': ['司各庄镇', '安各庄镇'],
  36. '玉田县': ['玉田镇', '亮甲店镇']
  37. }
  38. }
  39. }
  1. # 方法一:
  2. tag=True
  3. while tag:
  4. menu1=menu
  5. for key in menu1:
  6. print(key)
  7.  
  8. choice1=input('The First Layer>>: ').strip()
  9. if choice1 == 'b':break
  10. if choice1 == 'q':
  11. tag = False
  12. break
  13. if choice1 not in menu1:continue
  14.  
  15. while tag:
  16. menu2=menu1[choice1]
  17. for key in menu2:
  18. print(key)
  19.  
  20. choice2 = input('The Second Layer>>: ').strip()
  21. if choice2 == 'b':break
  22. if choice2 == 'q':
  23. tag=False
  24. break
  25. if choice2 not in menu2:continue
  26.  
  27. while tag:
  28. menu3 = menu2[choice2] for key in menu3:
  29. print(key)
  30.  
  31. choice3 = input('The Third Layer>>: ').strip()
  32. if choice3 == 'b':break
  33. if choice3 == 'q':
  34. tag=False
  35. break
  36. if choice3 not in menu3: continue
  37.  
  38. while tag:
  39. menu4 = menu3[choice3] for key in menu4:
  40. print(key)
  41.  
  42. choice4 = input('The Fourth Layer>>: ').strip()
  43. if choice4 == 'b':break
  44. if choice4 == 'q':
  45. tag=False
  46. break
  47.  
  48. if choice4 not in menu4: continue
  1. current_layer = dic1
  2. parent_layer = [] # 用来放置父级的key组成的list
  3. choose_end=['沙河机场', '链家','北方明珠', '天通尾货','朝阳公园', '望京soho','北小河公园', '北京中学','超市', '特产店', '水吧',
  4. '电影院', '游泳馆', '餐馆','世纪公园', '立交桥','鲁迅公园', '同济大学','东正', '阳关','赵州桥', '高村乡','司各庄镇',
  5. '安各庄镇','玉田镇', '亮甲店镇',
  6. ]
  7.  
  8. Tag = True
  9. while Tag:
  10.  
  11. print('\033[31m%s \033[0m' % '请输入序号'.ljust(20, '*'))
  12. print('\033[31m***输入back返回上一级菜单,或者quit退出***\033[0m')
  13.  
  14. for i in current_layer:
  15. print(i)
  16.  
  17. choose = input('>>>:').strip()
  18.  
  19. if choose in current_layer:
  20. if choose in choose_end:
  21. print('\033[31m%s \033[0m' % '已经到最后一页'.center(40, '*'))
  22. continue
  23. else:
  24. parent_layer.append(current_layer)
  25. current_layer = current_layer[choose]
  26. # else:
  27. # print('\033[31m%s \033[0m' % '已经到最后一页'.center(40, '*'))
  28.  
  29. elif choose == 'back':
  30. if len(parent_layer) != 0:
  31. current_layer = parent_layer.pop()
  32. else:
  33. print('\033[31m%s \033[0m' % '已经到达最上级菜单'.center(40, '*'))
  34.  
  35. elif choose == 'quit':
  36. print('\033[31m Bye~Bye~^_^ \033[0m')
  37. break
  38.  
  39. else:
  40. 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. PPT分享 | 怎么在区块链上保护隐私?

    艾伯特AI人工智能(公众号:aibbtcom)按: (编者按:在12月3日的亚太区以太坊社区培训和交流Meetup深圳站上,Vitalik作了<怎么在区块链上保护隐私>的演讲,谈到了区块链 ...

  2. 基于 CDH 构建推荐系统

    我理解的推荐系统本质是一种排序方式.排序的规则是按照我们预测的用户喜好程度的一个排序的列表,而如何定义用户的喜好程度是推荐系统要解决的核心问题.机器学习的算法只是推荐系统的一部分.构建一个完整的推荐系 ...

  3. 零散Linux命令

    1. # ps -ef|grep java 查询java进程 2. # kill -9 进程号 关闭指定进程

  4. linux(ubuntu)环境下安装及配置JDK

    安装完IDEA之后遇到了问题,发现jdk安装完之后配置环境变量好困难,下面总结一下我的安装及配置方式: JDK下载链接:http://download.oracle.com/otn-pub/java/ ...

  5. Sql Server 索引以及页和区

    索引(Index),相信大家都知道就是给表中的数据添加了一个目录,使我们可以快速检索到我们想要的数据,但这个目录是什么?SqlServer又是如何管理的?要搞明白这些,我们就要先了解sqlserver ...

  6. 开始补习JavaScript的第一天

    JavaScript介绍: ①.JavaScript是一种解释性的,基于对象的脚本语言. ②.JavaScript是一种轻量级的编程语言,可以嵌入到html页面中,由浏览器来解释执行. ③.JavaS ...

  7. hosts文件路径及文件介绍

    路径:WINDOWS/system32/drivers/etc/hosts 内容127.0.0.1       localhost 一. Hosts文件的位置 很多用户都知道在Window系统中有个H ...

  8. JavaScript(第三十天)【XPath】

    XPath是一种节点查找手段,对比之前使用标准DOM去查找XML中的节点方式,大大降低了查找难度,方便开发者使用.但是,DOM3级以前的标准并没有就XPath做出规范:直到DOM3在首次推荐到标准规范 ...

  9. C语言助教批改

    作业批改 每次作业批改后写一篇作业点评,助教轮流写作业总结.(总结分工老师安排). 每个助教点评自己负责的同学博客,点评要详细,不能只有一句话. 有比较优秀博客请或典型问题推荐到qq群,并发给写总结助 ...

  10. 201621123040《Java程序设计》第2周学习总结

    1.本周学习总结 关键词:Java中的字符串与数组 c语言基本语法的迁移 相关总结:在一周的学习过程中,我自主学习Java的基本语法,前期的相关语法与c语言的基本语法相近,也算是做到了很好的回顾:在郑 ...