全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Python三级菜单的实例

要求:

打印省、市、县三级菜单

可返回上一级

可随时退出程序

版本1

# _author : Ahern Li
# @_date : 2017/9/12

menu = {
  '浙江省':{
    '杭州市':{
      '余杭区':{'中泰':{},'临平':{}},
      '西湖区':{'西湖':{},'留下':{}}
      },
    '温州市':{
      '苍南县':{'灵溪':{},'龙港':{}},
      '瑞安县':{'安阳':{},'锦湖':{}}
      }
    },
  '广东省':{
    '广州市':{
      '越秀区':{'人民路':{},'北京路':{}},
      '荔湾区':{'沙面':{},'龙津':{}}
      },
    '珠海市':{
      '香洲区':{'拱北':{},'吉大':{}},
      '金湾区':{'红旗镇':{},'平沙镇':{}}
      }
    }
  }

# 返回标记
q_flag = True
# 退出标记
Q_flag = True
# 返回,退出标记出现False退出循环
while q_flag and Q_flag:
  # 遍历打印省份
  for i in menu:
    print(i)
  province = input('请输入要查找的省份(Q,退出):').strip()
  if province in menu:
    while q_flag and Q_flag:
      for i in menu[province]:
        print(i)
      city = input('请输入要查找的市(q,返回 或 Q,退出):').strip()
      if city in menu[province]:
        while q_flag and Q_flag:
          for i in menu[province][city]:
            print(i)
          county = input('请输入要查找的区或县(q,返回 或 Q,退出):').strip()
          if county in menu[province][city]:
            while q_flag and Q_flag:
              for i in menu[province][city][county]:
                print(i)
              # 提示最后一页,输入格式
              choice = input('最后一页! q,返回 或 Q,退出:').strip()
              if choice == 'q':
                # 配合 else: q_flag = True 退出该层循环,返回上层循环
                q_flag = False
              elif choice == 'Q':
                # 退出大循环
                Q_flag = False
              else:
                # 提示输入不合法
                print('输入错误!')
            # 改回 q_flag 的值,实现只退出一层循环
            else:
              q_flag = True
          elif county == 'q':
            q_flag = False
          elif county == 'Q':
            Q_flag = False
          else:
            print('输入错误!')
        else:
          q_flag = True
      elif city == 'q':
        q_flag = False
      elif city == 'Q':
        Q_flag = False
      else:
        print('输入错误!')
    else:
      q_flag = True
  elif province == 'Q':
    Q_flag = False
  else:
    print('输入错误!')

版本2

# _author : Ahern Li
# @_date : 2017/9/12

menu = {
  '浙江省':{
    '杭州市':{
      '余杭区':{'中泰':{},'临平':{}},
      '西湖区':{'西湖':{},'留下':{}}
      },
    '温州市':{
      '苍南县':{'灵溪':{},'龙港':{}},
      '瑞安县':{'安阳':{},'锦湖':{}}
      }
    },
  '广东省':{
    '广州市':{
      '越秀区':{'人民路':{},'北京路':{}},
      '荔湾区':{'沙面':{},'龙津':{}}
      },
    '珠海市':{
      '香洲区':{'拱北':{},'吉大':{}},
      '金湾区':{'红旗镇':{},'平沙镇':{}}
      }
    }
  }

current_layer = menu  # 实现动态循环
parent_layer = []  # 保留所有父层,最后一个元素永远为父层

while True:
  print() # 仅为了打印美观
  for i in current_layer:   # 遍历打印地址
    print(i)
  choice = input('请在下方输入查询地址\n>>>:').strip()
  if choice in current_layer:
    if current_layer[choice]:  # 判断是否为末层
      parent_layer.append(current_layer) # 进入子层前,添加当前层作为父层
      current_layer = current_layer[choice]  # 修改子层
    else:
      print('当前是最后一页')
  elif choice == '':
    continue
  elif choice == 'q':   # 返回上层
    if parent_layer:  # 判断 parent_layer 是否为空
      current_layer = parent_layer.pop() # 取出当前层父层
  # 退出循环
  elif choice == 'Q':
    break
  else:
    print('输入错误!')

以上这篇Python三级菜单的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。


# Python三级菜单  # Python3.5实现的三级菜单功能示例  # 详解Python读取yaml文件多层菜单  # Python3实现的简单三级菜单功能示例  # Python处理菜单消息操作示例【基于win32ui模块】  # Python创建普通菜单示例【基于win32ui模块】  # Python基于win32ui模块创建弹出式菜单示例  # python添加菜单图文讲解  # 西湖  # 苍南县  # 越秀  # 请输入  # 珠海市  # 瑞安  # 安阳  # 温州市  # 杭州市  # 遍历  # 浙江省  # 广东省  # 广州市  # 给大家  # 为父  # 北京路  # 中泰  # 吉大  # 临平  # 请在 


相关文章: javascript中的try catch异常捕获机制用法分析  一键制作网站软件下载安装,一键自动采集网页文档制作步骤?  建站之星安全性能如何?防护体系能否抵御黑客入侵?  齐河建站公司:营销型网站建设与SEO优化双核驱动策略  如何用y主机助手快速搭建网站?  建站之星云端配置指南:模板选择与SEO优化一键生成  利用JavaScript实现拖拽改变元素大小  长沙企业网站制作哪家好,长沙水业集团官方网站?  上海制作企业网站有哪些,上海有哪些网站可以让企业免费发布招聘信息?  定制建站流程解析:需求评估与SEO优化功能开发指南  C++用Dijkstra(迪杰斯特拉)算法求最短路径  如何用VPS主机快速搭建个人网站?  移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?  如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南  建站主机与虚拟主机有何区别?如何选择最优方案?  制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  C#如何使用XPathNavigator高效查询XML  电商网站制作公司有哪些,1688网是什么意思?  网站制作外包价格怎么算,招聘网站上写的“外包”是什么意思?  网站制作壁纸教程视频,电脑壁纸网站?  如何通过远程VPS快速搭建个人网站?  JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  如何通过商城自助建站源码实现零基础高效建站?  家庭服务器如何搭建个人网站?  html制作网站的步骤有哪些,iapp如何添加网页?  网站制作企业,网站的banner和导航栏是指什么?  西安制作网站公司有哪些,西安货运司机用的最多的app或者网站是什么?  如何在Tomcat中配置并部署网站项目?  如何续费美橙建站之星域名及服务?  洛阳网站制作公司有哪些,洛阳的招聘网站都有哪些?  如何彻底卸载建站之星软件?  宝塔Windows建站如何避免显示默认IIS页面?  黑客入侵网站服务器的常见手法有哪些?  建站之星导航配置指南:自助建站与SEO优化全解析  外贸公司网站制作,外贸网站建设一般有哪些步骤?  手机网站制作与建设方案,手机网站如何建设?  重庆网站制作公司哪家好,重庆中考招生办官方网站?  建站之星安装后界面空白如何解决?  建站之星Pro快速搭建教程:模板选择与功能配置指南  宝塔面板创建网站无法访问?如何快速排查修复?  如何在IIS管理器中快速创建并配置网站?  如何通过商城免费建站系统源码自定义网站主题?  网站网页制作电话怎么打,怎样安装和使用钉钉软件免费打电话?  建站之星安装步骤有哪些常见问题?  ,网页ppt怎么弄成自己的ppt?  c# 在高并发场景下,委托和接口调用的性能对比  建站之星安装提示数据库无法连接如何解决?  网站制作软件免费下载安装,有哪些免费下载的软件网站?  东莞专业网站制作公司有哪些,东莞招聘网站哪个好? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。