新手小白 python之路 Day1 (三级菜单功能实现)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了新手小白 python之路 Day1 (三级菜单功能实现)相关的知识,希望对你有一定的参考价值。
直接上需求:
实现一个多级菜单
三级菜单的实现
可以依次选择进入各个子菜单
也可以返回上级菜单
所需知识 列表 字典
需求也比较简单,但实际上做起来还是遇到许多的问题,我这边主要用到的知识点大概就是 字典 等
大致的思路 我是分别写了四个函数
Abnormal() 通过抛出异常来判断输入的编号是否合法
Province() 获取省级菜单
City() 获取市级菜单
Area() 获取区级菜单
来实现整个功能的,话不多说直接上代码了
#!/usr/bin/env python # -*- coding:utf-8 -*- # Author: linghanchujian """ 多级菜单 三级菜单的实现 可以依次选择进入各个子菜单 也可以返回上级菜单 所需知识 列表 字典 """ """ 三级菜单字典 """ DictionaryMenu = { ‘山东‘ : { ‘青岛‘ : [‘四方‘,‘黄岛‘,‘崂山‘,‘李沧‘,‘城阳‘], ‘济南‘ : [‘历城‘,‘槐荫‘,‘高新‘,‘长青‘,‘章丘‘], ‘烟台‘ : [‘龙口‘,‘莱山‘,‘牟平‘,‘蓬莱‘,‘招远‘] }, ‘安徽‘ : { ‘合肥‘ : [‘蜀山‘,‘庐阳‘,‘包河‘,‘经开‘,‘新站‘], ‘芜湖‘ : [‘镜湖‘,‘鸠江‘,‘无为‘,‘三山‘,‘南陵‘], ‘蚌埠‘ : [‘蚌山‘,‘龙子湖‘,‘淮上‘,‘怀远‘,‘固镇‘] }, ‘广东‘ : { ‘深圳‘ : [‘罗湖‘,‘福田‘,‘南山‘,‘宝安‘,‘布吉‘], ‘广州‘ : [‘天河‘,‘珠海‘,‘越秀‘,‘白云‘,‘黄埔‘], ‘东莞‘ : [‘莞城‘,‘长安‘,‘虎门‘,‘万江‘,‘大朗‘] } } """ 通过抛出异常来判断输入的编号是否合法 """ def Abnormal(Num): try: int(Num) return True except ValueError: return False """ 获取省级 """ 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() pass print("欢迎来到三级菜单!!") Province()
以上是关于新手小白 python之路 Day1 (三级菜单功能实现)的主要内容,如果未能解决你的问题,请参考以下文章