博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
新手小白 python之路 Day1 (三级菜单功能实现)
阅读量:6982 次
发布时间:2019-06-27

本文共 3334 字,大约阅读时间需要 11 分钟。

直接上需求:

        实现一个多级菜单

    三级菜单的实现

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

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

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

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    pass"""获取省级"""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

你可能感兴趣的文章
bi api 软件
查看>>
WPS客户端更新日志留着备用
查看>>
c#获取电脑硬件信息参数说明(内存篇 Win32_PhysicalMemory)
查看>>
LeetCode算法题-Balanced Binary Tree(Java实现)
查看>>
Cocos2dx 3.1.1 将一个2.X的项目改成3.1版本
查看>>
12.12冲刺~!
查看>>
sql知识
查看>>
spring boot
查看>>
核心动画(转场动画和组动画)
查看>>
数的全排列
查看>>
2015年最新手机号码正则表达式
查看>>
public private protected 区别
查看>>
IntelliJ IDEA常用设置及快捷键
查看>>
KVM: 安装Windows virtio半虚拟化驱动
查看>>
hdu2669 扩展欧几里得
查看>>
PHP 基础
查看>>
Delphi判断字符串是否是数字、字母、大小写字母
查看>>
POJ NOI0105-45 金币
查看>>
Project Euler Problem 15 Lattice paths
查看>>
组合模式
查看>>