day01 作业 三级菜单

'''
实现功能:做一个三级菜单,根据用户选择显示对应的菜单,可以进入子菜单,也可以返回上一级菜单,可以直接退出

三级菜单格式:   第一级是一个字典
                第二级也是一个字典
                第三级是列表
                    例如:{"shabi":{"shabi1":["shabi11","shabi12"],"shabi2":["shabi21","shabi22"]},"caibi":{"caibi1":["caibi11","caibi12"],"caibi2":["caibi21","caibi22"]}}

'''


def showMenu(menu,firstLevelMenu,secondMenu):
    '''
    根据一级菜单和二级菜单和menu显示对应的菜单选项
    :param menu:    总菜单
    :param firstLevelMenu:  一级菜单,如果要显示一级菜单,此处为None
    :param secondMenu:      二级菜单,如果要显示二级菜单,此处为None
    :return: None
    '''
    if firstLevelMenu==None:   #s说明显示的是一级菜单
        for menuItem in menu.keys():
            print(menuItem,end=',')
        print("quit")
    elif secondMenu==None:  #说明显示的是二级菜单
        for menuItem in menu[firstLevelMenu].keys():
            print(menuItem, end=',')
        print("quit,back")
    else:       #说明显示的三级菜单
        for menuItem in menu[firstLevelMenu][secondMenu]:
            print(menuItem, end=',')
        print("back,quit")


menu={"shabi":{"shabi1":["shabi11","shabi12"],"shabi2":["shabi21","shabi22"]},"caibi":{"caibi1":["caibi11","caibi12"],"caibi2":["caibi21","caibi22"]}}  

def userInterface():
    '''
    用户交互程序
    :return: None
    '''
    currentFirstLevel = None
    currentSecondLevel = None
    while True:
        showMenu(menu,currentFirstLevel,currentSecondLevel)
        useSelect =input("请输入你的选择:")
        if useSelect=="quit":       #无论处在哪一级,只要输入"quit" 就退出
            exit()
        if currentFirstLevel==None and useSelect in menu.keys() : #说明目前处在一级菜单, 并判断用户是否输入正确
            currentFirstLevel=useSelect
            continue
        elif currentFirstLevel!=None and currentSecondLevel == None and useSelect in menu[currentFirstLevel].keys() or useSelect=="back":    #说明目前处在二级菜单,判断用户是否输入正确
            if useSelect=="back":   #用户想返回上一级菜单
                currentFirstLevel=None
                continue
            elif  useSelect in menu[currentFirstLevel].keys():#判断用户是否输入正确
                currentSecondLevel=useSelect
                continue
        print("有病吧")

if __name__ == '__main__':
    userInterface()

 

posted @ 2017-10-31 09:25  XiaoBBai  阅读(182)  评论(0编辑  收藏  举报