• python三级菜单


    #-*- coding:utf-8 -*-
    #Author:gxli


    #一级菜单项
    def menu():
    #遍历字典dic一级菜单
    print('-----------一级菜单----------------')
    for index,key in enumerate(dic.keys(),1):
    print(index,key)
    ##将一级key的下标与key放入临时字典中
    dic_key[str(index)]=key
    choose = input("请选择1级菜单!退出输入 q ,返回请输入 b :")
    #判断输入,输入q时退出,输入b时提示无法返回
    if choose == 'q':
    quit()
    elif choose == 'b':
    print('目前为一级目录,无法返回!请重新选择!')
    return
    #判断用户输入是否在临时字典的key中,若有调用二级菜单
    elif dic_key.get(choose,0):
    menu_1(dic_key[choose])
    else:
    print('')
    print('您的输入有误,请重新输入!')


    #二级菜单项
    def menu_1(choose1):
    #输入有误时重新加载二级菜单项
    while True:
    print('')
    print('-----------二级菜单----------------')
    # 遍历字典dic二级菜单
    for index,key in enumerate(dic[choose1].keys(),1):
    print(index,key)
    ##将二级key的下标与key放入临时字典中
    dic_key[str(index)] = key
    choose2 = input("请选择2级菜单!退出输入 q ,返回请输入 b :")
    # 判断输入,输入q时退出,输入b时调用1级菜单
    if choose2 == 'q':
    quit()
    elif choose2 == 'b':
    menu()
    elif dic_key.get(choose2, 0):
    menu_2(choose1, dic_key[choose2])
    else:
    print('')
    print('您的输入有误,请重新输入!')

    #三级菜单项
    def menu_2(choose1, choose2):
    #输入有误时重新加载三级菜单项
    while True:
    # 遍历字典dic三级菜单
    print('')
    print('-----------三级菜单----------------')
    for index,key in enumerate(dic[choose1][choose2],1):
    #显示key与key的下标
    print(index,key)
    #将三级key的下标与key放入临时字典中
    dic_key[str(index)] = key
    choose3 = input("请选择3级菜单!退出输入 q ,返回请输入 b :")
    # 判断输入,输入q时退出,输入b时调用1级菜单
    if choose3 == 'q':
    quit()
    elif choose3 == 'b':
    menu_1(choose1)
    else:
    print('')
    print('您的输入有误,请重新输入!')


    if __name__ == '__main__':
    # 设置菜单
    dic = {
    "动物": {
    "狗": ["大狗", "小狗"],
    "猫": ["大猫", "小猫"]
    },
    "植物": {
    "树": ["大树", "小树"],
    "花": ["大花", "小花"]
    }
    }
    dic_key = {}

    while True:
    menu()
  • 相关阅读:
    [算法练习]ZigZag Conversion
    获取所有后缀DDE打开命令
    [算法练习]Add Two Numbers
    获取dll编译时生成的pdb文件的名称
    [转载]定位 C++/CLI 库的加载失败异常
    在C++/CLI环境下,千万不要把普通全局函数当标准C/C++的函数指针传递给native的库使用
    Mono集成中使用api获取当前mono 调用堆栈的方法
    简单对比了一下MonoXml与SystemXml在Unity下的表现
    C++从LPEXCEPTION_POINTERS获取调用堆栈
    遇到doxygen生成的chm文档目录如果有中文是乱码?
  • 原文地址:https://www.cnblogs.com/liguangxu/p/5477920.html
Copyright © 2020-2023  润新知