• 84 【Python0036】中文级联菜单


    编写程序实现中文级联菜单,建议可以使用pypinyin或其它扩展库。

    #  一、定义菜单内容
    
    map_list ={
        'C盘':{
            "program":{
                "Microsoft Office":["IntegratedOffice.exe","OfficeClickToRun.exe"],
                "Microsoft SDKs":["locales","resources"]
            },
            "Windows Media Player":{
                "Media Renderer":["avtransport.xml","connectionmanager_dmr.xml"],
                "Network Sharing":["ConnectionManager.xml","ContentDirectory.xml"]
            },
            "Windows NT": {
                "Accessories": ["en-US", "zh-CN"],
                "TableTextService": ["TableTextServiceArray.txt", "TableTextServiceDaYi.txt"]
            }
        },
        'D盘': {
            "课程": {
                "高数": ["高数一", "高数二"],
                "c++": ["第一章概轮", "第二章"]
            },
            "活动": {
                "青马培训": ["线上笔记", "课后练习"],
                "软件杯": ["题目选择", "项目"]
            },
            "作业":{
                "高数": ["高数一", "高数二"],
                "操作系统": ["课后作业", "实验"]
            },
        },
        'E盘': {
            "QQ": {
                "All Users": ["1161851172", "Registry2.0.db"],
                "MobileFile": ["Image", "mpFile"]
            },
            "WeChat": {
                "Tencent": ["[3.6.0.18]", "appletPath.txt"],
                "WeChat Files": ["All Users", "Applet"]
            },
            "Hadoop2.7.1": {
                "bin": ["container-executor", "hadoop"],
                "data": ["datanode", "namenode"]
            },
        },
    }
    while True:
        for menu_list in map_list:                                #定义一级联菜单,将已经完成级联的菜单传给新定义的数值menu_list
            print(menu_list)                                      #打印一级菜单
    # -------------------------------------------------------------------------------打印第一层输出,打印磁盘
        chose_list = input("选择进入1>>:")                        #将用户输入定义为chose_list
        if  chose_list in map_list:                               #判断用户输入,如果用户输入的数据在定义的字典里面,则为真
            while True:
                for menu_list1 in map_list[chose_list]:           #定义二级菜单menu_list1,如果用户输入的这个菜单在一级菜单里面,则进行打印
                    print("\t",menu_list1)
    # -------------------------------------------------------------------------------打印第二层输出,打印文件夹
                chose_list1 = input("选择进入2>>:")                #将用户输入定义为chose_list1
                if chose_list1 in map_list[chose_list]:            #判断用户输入,如果用户输入的数据在定义的字典里面,则为真
                   while True:
                        for menu_list2 in map_list[chose_list][chose_list1]:    #定义三级菜单menu_list2,如果用户输入的这个菜单在二级菜单里面,则进行打印
                            print("\t\t",menu_list2)
    # -------------------------------------------------------------------------------打印第三层输出,打印子文件夹
                        chose_list2 = input("选择进入3>>:")                         #将用户输入定义为chose_list2
                        if chose_list2 in map_list[chose_list][chose_list1]:        #判断用户输入,如果用户输入的数据在定义的字典里面,则为真
                            for menu_list3 in map_list[chose_list][chose_list1][chose_list2]:            #定义三级菜单menu_list3,如果用户输入的这个菜单在一级、二级、三级菜单里面,则进行打印
                                print("\t\t\t",menu_list3)
    # -------------------------------------------------------------------------------打印第三层区县里面所包含的具体文件夹或者文件
                            chose_list3 = input("最后一层,按b进行返回。>>:")        #判断用户是否需要返回,返回上一层级
                            if chose_list3 == 'b':
                                break
    # -------------------------------------------------------------------------------添加判断,来进行确认终端用户是否想要返回上级菜单。也就是返回上一级文件夹
                        if chose_list2 == 'b':                                            #判断用户是否返回
                            break
    # -------------------------------------------------------------------------------添加判断,来进行确认终端用户是否想要返回上级菜单。也就是返回上一级文件夹
                if chose_list1 == 'b':                                                     #判断用户是否返回
                    break
  • 相关阅读:
    MyBatis 核心配置综述之 ResultSetHandler
    MyBatis 核心配置综述之 ParameterHandler
    MyBatis 核心配置综述之StatementHandler
    高等数学——手撕牛顿莱布尼茨公式
    用二分法优化动态规划——实现快速决策
    召回、精确、准确,这些让人头大的概念一文全讲清楚
    Python——详解__slots__,property和私有方法
    LeetCode50——一题学会快速幂算法
    Golang——详解Go语言代码规范
    spark——详解rdd常用的转化和行动操作
  • 原文地址:https://www.cnblogs.com/lx06/p/16211064.html
Copyright © 2020-2023  润新知