python实战演练三级菜单

Posted kking-lh

tags:

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

一.实现功能


1. 运行程序输出第一级菜单

2. 选择一级菜单某项,输出二级菜单,同理输出三级菜单

3. 菜单数据保存在文件中

4. 让用户选择是否要退出

5. 有返回上一级菜单的功能

 

 

二,流程图

技术分享图片

 

技术分享图片
#-*- Coding:utf-8 -*-
# Author: kking
‘‘‘
作业需求:
1. 运行程序输出第一级菜单
2. 选择一级菜单某项,输出二级菜单,同理输出三级菜单
3. 菜单数据保存在文件中
4. 让用户选择是否要退出
5. 有返回上一级菜单的功能
‘‘‘

import sys
data = {
    海贼王:{
        草帽海贼团:{
            路飞:{果实能力:橡胶果实,霸气:[武装色霸气,见闻色霸气,霸王色霸气],:21},
            索罗:{果实能力:,霸气:[武装色霸气,见闻色霸气],:24},
            香吉士:{果实能力:,霸气:[武装色霸气,见闻色霸气],:23},
        },
        七武海:{
            波雅汉库克:{果实能力:甜甜果实,霸气:[武装色霸气,见闻色霸气,霸王色霸气],:20},
            鹰眼米霍克:{果实能力:,霸气:[武装色霸气,见闻色霸气],:26},
            小丑巴基:{果实能力:分裂果实,霸气:,:25},
        },
        四皇:{
            香克斯:{果实能力:未知,霸气:[武装色霸气,见闻色霸气,霸王色霸气],:28},
            黑胡子:{果实能力:黑暗果实,霸气:[武装色霸气,见闻色霸气],:28},
            凯多:{果实能力:未知,霸气:[武装色霸气,见闻色霸气],:28},
        },

    },
    妖精的尾巴:{
        灭龙魔导师:{
            纳兹:{属性能力:火之灭龙魔法,:21,},
            伽吉鲁:{属性能力:铁之灭龙魔法,:23,},
            温蒂:{属性能力:天之灭龙魔法,:18,},
        },
        超S魔导师:{
            吉尔达斯:{属性能力:粉碎,:28},
            艾璐萨:{属性能力:变装魔法,:26},
            米拉杰:{属性能力:变成撒旦,:27},
        },
        六魔将:{
            深夜:{属性能力:扭曲空间,:24},
            克布拉:{属性能力:毒之灭龙魔法,:24},
            安吉拉:{属性能力:召唤星灵,:22},
        },
    },
    火影:{
       木叶村:{
           宇智波.鼬: {属性能力:万花筒写轮眼,:26},
           日向雏田: {属性能力:白眼,:24},
           我爱罗: {属性能力:砂纸守鹤,:24},
       },
        :{
            佩恩:{属性能力:轮回眼,:28},
            鬼鲛:{属性能力:[水遁,鲛肌],:28},
            迪达拉:{属性能力:[黏土炸弹,自爆],:28}
        },
        代目:{
            初代:{姓名:千手柱间,属性能力:树诞降临,:99999},
            三代:{姓名:猿飞,属性能力:[土流大河,召唤猿魔],:64},
            四代:{姓名:波风水门,属性能力:[飞雷神之术,螺旋丸],:34},

        },
    },
}
def _exit():                          #定义一个退出循环打印查询结果函数
    print(*********查询结果*******)
    for query_result in query_results:
        print(query_result)
    sys.exit(退出程序)


query_results = []      #定义一个空列表,用来储存查询结果
for d1 in data:         #首先遍历第一级菜单并打印
    print(d1)
while True:                 #循环第一级菜单,如果用户输入内容错误或为空则给出提示,直到为True执行第二层菜单循环
    choices = input(请选择漫画>>>:)
    if choices in data:         #判断用户输入内容是否包含在第一层菜单内

        while True:         #循环第二级菜单,如果用户输入内容错误或为空则给出提示,直到为True执行第三层菜单循环
            for d2 in data[choices]:    #遍历第二级菜单并打印
                print(	,d2)
            choices2 = input(请选择下级菜单>>>:)
            if choices2 in data[choices]:   #判断用户输入内容是否包含在第二层菜单内

                while True: #循环第三级菜单,如果用户输入内容错误或为空则给出提示,直到为True执行最后一层循环
                    for d3 in data[choices][choices2]:  #遍历第三级菜单并打印
                        print(			,d3)

                    choices3 = input(请选择动漫人物>>>:)
                    if choices3 in data[choices][choices2]: #判断用户输入内容是否包含在第三层菜单内
                        query_results.append(choices3)          #将choices3的值存入 query_results列表中
                        for result in data[choices][choices2][choices3].items():  #循环遍历第三级菜单参数
                            query_results.append(result)        #根据用户输入choices3为键,找到相应的值,
                                                                # 存入query_results列表中并打印
                            print(result)
                        user_goon = input(是否继续查询>>>?   q:退出查询)
                        if user_goon != q:        #判断用户是否继续查询,如结果不为q则用户继续选择想要查询的人物
                            pass
                        else:                       #判断用户是否继续查询,如结果为q则退出整个循环
                            _exit()
                    elif choices3 == ‘‘ or choices3 ==  :     #判断用户输入的choices3内容是否为空
                        print("输入不能为空")
                    elif choices3 == b:               #判断用户输入内容是否为返回上一级菜单
                        break
                    elif choices3 ==q:        #判断用户输入内容是否为q
                        _exit()
                    else:                       #判断用户输入内容是否存在
                        print(人物不存在请重新输入)

            elif choices2 == ‘‘ or choices2 ==  :
                print("输入不能为空")
            elif choices2 == q:
                _exit()
            elif choices2 == b:
                break
            else:
                print(菜单不存在请重新输入)

    elif choices == ‘‘ or choices ==  :
        print("输入不能为空")
    elif choices == q:
        _exit()
    else:
print(漫画不存在请重新输入)
View Code

 










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

Python进阶实战之三级菜单

PYTHON自学之路_三级菜单_实战

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

《Python高效开发实战》实战演练——基本视图3

Python 开发简单爬虫 - 实战演练

Python 三级菜单