三级菜单

Posted JackLee

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了三级菜单相关的知识,希望对你有一定的参考价值。

需求:

1、三级菜单

2、可依次选择进入各子菜单

3、可依次返回和终止各层次

流程图:

 

程序如下:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:Jack.Lee
# FileName: three_level_menu
#三级菜单采用字典来做,例子:省份—地市—景点
spot = {
    \'广东\':{
        "广州":{"广州塔","农讲所","白云山"},
        "深圳":{"世界之窗","欢乐谷","锦绣中华"},
        "湛江":{"湖光岩","海滨公园","观海长廊"}
    },
    \'广西\':{
        "南宁":{"青秀山","凤凰岭","龙虎山"},
        "桂林":{"阳朔","漓江","西街"},
        "北海":{"银滩","老街","涠洲岛"}
    },
    \'浙江\':{
        "杭州":{"西湖","灵隐寺","千岛湖"},
        "温州":{"青龙湖","九龙潭","望海楼"},
        "宁波":{"东钱湖","天一阁","二灵塔"}
    }
}

exit_flag = False

while not exit_flag:
    for P in spot:     #打印第一层菜单
        print(P)
    province = input("请输入省份(按q退出):")
    if province == "q":
        print("您已退出系统,欢迎下次再用!")
        break
    if province in spot:
        while not exit_flag:    #进入二级菜单循环
            for C in spot[province]:
                print(C)
            city = input("请输入地市(按q退出,b返回上一级):")
            if city == "b":
                break
            elif city == "q":
                exit_flag = True
                print("您已退出系统,欢迎下次再用!")
            elif city in spot[province]:
                while not exit_flag:  # 进入三级菜单循环
                    for S in spot[province][city]:
                        print(S)
                    scenic_spot = input("请输入景区(按q退出,b返回上一级):")
                    if scenic_spot == "b":
                        break
                    elif scenic_spot == "q":
                        exit_flag = True
                        print("您已退出系统,欢迎下次再用!")
                    elif scenic_spot in spot[province][city]:
                        print("您选择的景区:",\'\\033[34;1m\',scenic_spot,\'\\033[0m\')             #30:黑,31:红 ,32:绿,33:黄 ,34:蓝色,35:紫色,36:深绿 ,37:白色;
                        exit_flag = True
                    else:
                         print("\\033[31;0m对不起!你输入的景区不存在,请重新输入!\\033[0m")  #打印错误信息,并且用红色标注。颜色标识方法:\\033[显示方式;前景色;背景色m
            else:
                print("\\033[31;0m对不起!你输入的地市不存在,请重新输入!\\033[0m")
    else:
        print("\\033[31;0m对不起!你输入的省份不存在,请重新输入!\\033[0m")

 

以上是关于三级菜单的主要内容,如果未能解决你的问题,请参考以下文章

python-三级菜单和购物车程序代码(补发)

TreeUtils工具类一行代码实现列表转树 实战Java8 三级菜单 三级分类 附视频

1-2 三级菜单

Python 三级菜单

代码段-- 三级菜单 (基础版)

三级菜单-2018.2.21