编写程序实现中文级联菜单,建议可以使用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