直接上需求:

实现一个多级菜单

    三级菜单的实现
    可以依次选择进入各个子菜单
    也可以返回上级菜单
    所需知识 列表 字典

需求也比较简单,但实际上做起来还是遇到许多的问题,我这边主要用到的知识点大概就是  字典 等

大致的思路 我是分别写了四个函数

Abnormal() 通过抛出异常来判断输入的编号是否合法
Province() 获取省级菜单
City() 获取市级菜单
Area() 获取区级菜单
来实现整个功能的,话不多说直接上代码了
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author: linghanchujian"""
多级菜单三级菜单的实现可以依次选择进入各个子菜单也可以返回上级菜单所需知识 列表 字典
""""""三级菜单字典
"""
DictionaryMenu = {'山东' : {'青岛' : ['四方','黄岛','崂山','李沧','城阳'],'济南' : ['历城','槐荫','高新','长青','章丘'],'烟台' : ['龙口','莱山','牟平','蓬莱','招远']},'安徽' : {'合肥' : ['蜀山','庐阳','包河','经开','新站'],'芜湖' : ['镜湖','鸠江','无为','三山','南陵'],'蚌埠' : ['蚌山','龙子湖','淮上','怀远','固镇']},'广东' : {'深圳' : ['罗湖','福田','南山','宝安','布吉'],'广州' : ['天河','珠海','越秀','白云','黄埔'],'东莞' : ['莞城','长安','虎门','万江','大朗']}
}
"""
通过抛出异常来判断输入的编号是否合法
"""
def Abnormal(Num):try:int(Num)return Trueexcept ValueError:return Falsepass"""
获取省级
"""
def Province():for i,j in enumerate (DictionaryMenu):print(str(i+1)+"、"+j)LevelOneOptions = input("请选择上面一级菜单列表的序号(n 退出): ")if LevelOneOptions == 'n':exit()else:if Abnormal(LevelOneOptions):OneOptions = int(LevelOneOptions)# print(LevelOneCount+1)if OneOptions>0 and OneOptions<(i+2):City(OneOptions-1)else:print("请输入0~~"+str(i+2)+"之间的数")print("---------------------------------------")Province()else:print("编号不合法!!")print("---------------------------------------")Province()pass"""
获取市级
"""
def City(Options):for i,j in enumerate(DictionaryMenu):if i == Options:for n,k in enumerate(DictionaryMenu[j]):print(str(n+1)+"、"+k)SecondLevelOptions = input("请选择上面二级菜单列表的序号(b/n 返回上级/退出): ")if SecondLevelOptions == "n":exit()elif SecondLevelOptions == "b":Province()return ;else:if Abnormal(SecondLevelOptions):TwoOptions = int(SecondLevelOptions)# print(LevelOneCount+1)if TwoOptions > 0 and TwoOptions < (n + 2):Area(Options,TwoOptions - 1)else:print("请输入0~~" + str(n + 2) + "之间的数")print("---------------------------------------")City(Options)else:print("编号不合法!!")print("---------------------------------------")City(Options)pass"""
获取区级
"""
def Area(Options,TwoOptions):for i,j in enumerate(DictionaryMenu):if i == Options:for n,k in enumerate(DictionaryMenu[j]):if n == TwoOptions:for c,v in enumerate(DictionaryMenu[j][k]):print(str(c+1)+"、"+v)ThreeOptions = input("上面就是三级菜单全部内容(b/n 返回上级/退出): ")if ThreeOptions == "b":City(Options)return ;else:exit()passprint("欢迎来到三级菜单!!")
Province()

转载于:https://www.cnblogs.com/Linghanchujian/p/7173132.html

新手小白 python之路 Day1 (三级菜单功能实现)相关推荐

  1. python实现三级菜单_Python3.5实现的三级菜单功能示例

    本文实例讲述了Python3.5实现的三级菜单功能.共享给大家供大家参考,详细如下: 程序:三级菜单 要求: 1. 打印省.市.县三级菜单 2. 可返回上一级 3. 可随时退出程序 详细代码: #!/ ...

  2. python字典之模拟三级菜单的程序

    博主简介:原互联网大厂tencent员工,网安巨头Venustech员工,阿里云开发社区专家博主,微信公众号java基础笔记优质创作者,csdn优质创作博主,创业者,知识共享者,欢迎关注,点赞,收藏. ...

  3. python之路--Day1

    本节内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入 模块初识 .pyc是个什么鬼? 数据类型初识 数据运算 表达式if ...else语 ...

  4. 老男孩-Python之路,Day1 - Python基础1

    本节内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入 模块初识 .pyc是个什么鬼? 数据类型初识 数据运算 表达式if ...else语 ...

  5. 三级python考试难吗_Python自学之路:三级菜单

    要求1: 1.运行程序输出一级菜单: 2.选择一级菜单某项,输出二级菜单,依次同理输出. 要求2: 只用一层循环完成 代码主要内容: 1.while循环.continue.break使用 2.if判断 ...

  6. 白白的python之路--Day1

    这里仅做个人的笔记所用,内容及代码多来自GitHub骆昊大神的100天课程,下附链接,侵删~ GitHub - jackfrued/Python-100-Days: Python - 100天从新手到 ...

  7. Python之路 day1 基础1 变量 for while 用户输入

    一. Python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为AB ...

  8. 新手小白python数据清洗代码_5天10分钟,学会数据清洗!(Python)

    这是来自Kaggle的Data Cleaning Challenge For 5 Days! Kaggle是国外著名的数据竞赛分析平台,对新手十分友好,这里主要记录我在这个小挑战中学到一些数据清洗方法 ...

  9. Python之路,Day1 - Python基础

    本节内容 Python介绍 发展史 一. Python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决 ...

最新文章

  1. 用Python如何查快递?
  2. 笔记本打字不知道按了什么键,打字老出现数字?
  3. MongoDB操作命令
  4. 11. Java基础之继承
  5. maven 构建依赖树_Maven构建依赖项
  6. 电脑连接virtualbox虚拟机的方法
  7. three.js制作3d模型工具_浙江3D打印模型制作收费标准▁来图定制
  8. Maven : has broken classes path unknown
  9. 0429《与孩子一起学编程》读书笔记1
  10. 利用swap()函数来收缩内存
  11. Chrome 咕咕牛懒器(guge niú lǎn qì) 安装 及助手插件操作
  12. 合工大路强java第四次作业第5题
  13. 关于be of noun的用法
  14. ONES X 深圳农村商业银行 | 数字化项目管理实践
  15. 通过md5值删除重复文件
  16. Linux内核设计与实现(13)第十三章:虚拟文件系统
  17. 2022-2028全球可观察性解决方案套件软件行业调研及趋势分析报告
  18. 2022.5.28-YMO青少年奥林匹克数学竞赛复赛(一等奖)
  19. 批量图片采集编辑压缩工具
  20. YDOOK:ESP8266: 乐鑫官方AT固件下载

热门文章

  1. MD5与Base64的思考
  2. [android]am自动化测试框架(原创)
  3. c# 元组Tuple
  4. DevOps:怎么实现源代码注释和系统文档的自动化更新?
  5. (转)I 帧和 IDR 帧的区别
  6. c3p0数据库连接池使用报错【 You can't operate on a closed Connection!!!】解决方案
  7. 怎样写出一个较好的高速排序程序
  8. Servlet入门 代码
  9. 提升对ASP.NET网站性能和多并发的设计的讨论
  10. iOS--MD5加密封装