• 02-三级菜单


    #Author:hejianping
    #2017-04-21
    import menu
    import sys
    first_menu_index = []
    second_menu_index = []
    third_menu_index = []

    # 创建一级菜单索引列表
    #使用enumerate函数遍历menu_dict中的一级目录元素并显示数据索引号,即创建一级餐单索引:
    first_menu_index = [(index,key) for index,key in enumerate(menu.menu_dict)]

    # 在first_menu_index列表末尾插入(索引号,退出餐单),因为从0算起所以新加的索引号等于len(first_menu_index):
    first_menu_index.append((int(len(first_menu_index)),'退出'))

    while True:
    print('--------------------------------')
    print('欢迎查看本店的餐单目录:')
    print('--------------------------------')
    for first in first_menu_index: # 打印出一级餐单目录
    for n in first:
    print(n,end="")
    print("") # 打印空行


    get_first_menu_num = input("请选择一级餐单对应的索引号:")
    if not get_first_menu_num.isdigit(): #判断输入格式是否无效
    print("请输入餐单前的数字索引号查看餐单或者退出!")
    continue
    elif int(get_first_menu_num) >= len(first_menu_index): #判断输入索引是否存在
    print("您输入的索引号数字太大,请重新输入!")
    continue
    elif int(get_first_menu_num) == len(first_menu_index) - 1: #len(first_menu)长度为4,及输入3就退出并显示退出信息:
    print("欢迎下次光临,再见!")
    break

    else:
    choose_first_menu_name = first_menu_index[int(get_first_menu_num)][1] #获取已经选择的一级餐单名字
    #依据一级餐单名确立其下二级餐单名字及对应的索引号:
    second_menu_index = [(index,key) for index,key in enumerate(menu.menu_dict[choose_first_menu_name])]
    second_menu_index.append((len(second_menu_index),'返回')) # 在列表增加返回上一级餐单的选项
    second_menu_index.append((len(second_menu_index), '退出')) # 在列表增加退出餐单的选项
    while True:
    print('--------------------------------')
    print('欢迎查看二级餐单目录:')
    print('--------------------------------')
    for second in second_menu_index: # 打印出二级餐单目录
    for n in second:
    print(n, end="")
    print("")

    get_second_menu_num = input("请选择二级餐单对应的索引号:")
    if not get_second_menu_num.isdigit():
    print("请输入餐单前的数字索引号查看餐单或者退出!")
    continue
    elif int(get_second_menu_num) >= len(second_menu_index):
    print("您输入的索引号数字太大,请重新输入!")
    continue
    elif int(get_second_menu_num) == len(second_menu_index) - 2: # 返回上级餐单目录:
    print("返回到上一级的餐单目录!")
    break
    elif int(get_second_menu_num) == len(second_menu_index) - 1: # 退出餐单目录:
    print("欢迎下次光临,再见!")
    sys.exit()

    else:
    choose_second_menu_name = second_menu_index[int(get_second_menu_num)][1] #获取已经选择的二级餐单名字
    # 依据二级餐单名确立其下三级餐单名字及对应的索引号:
    third_menu_index = [(index, key) for index, key in enumerate(menu.menu_dict[choose_first_menu_name][choose_second_menu_name])]
    third_menu_index.append((len(third_menu_index),"返回上级目录"))
    third_menu_index.append((len(third_menu_index), "退出餐单"))

    while True:
    print('--------------------------------')
    print('欢迎查看三级餐单目录:')
    print('--------------------------------')
    for third in third_menu_index: # 打印出一级菜单
    # print(first)
    for n in third:
    print(n, end="")
    print("")

    get_third_menu_num = input("请选择返回或退出:")
    if not get_third_menu_num.isdigit():
    print("请输入餐单前的数字索引号查看餐单或者退出!")
    continue
    elif int(get_third_menu_num) >= len(third_menu_index):
    print("您输入的索引号数字太大,请重新输入!")
    continue
    elif int(get_third_menu_num) == len(third_menu_index) - 2: # 返回上级餐单目录:
    print("返回到上一级的餐单目录!")
    break
    elif int(get_third_menu_num) == len(third_menu_index) - 1: # 退出餐单目录:
    print("欢迎下次光临,再见!")
    sys.exit()


    其中import menu为menu.py这个菜单目录信息文件,代码为:

    #Author:hejianping
    #2017-04-21
    menu_dict = {'中餐': {'蒸饭': ['冬菇滑鸡', '葱香排骨','萝卜牛腩'],
    '家常小炒': ['凉瓜牛肉', '番茄炒蛋','青椒炒肉'],
    '炖汤': ['瘦肉虫草花', '花旗参乌鸡','椰子炖老鸡']},
    '西餐': {'西式饭': ['印尼炒饭', '牛柳炒蛋拌饭','猪仔扒番茄蛋饭'],
    '西式扒': ['经典牛扒', '黑椒猪仔扒','欧陆什扒'],
    '西式粉': ['墨西哥肉酱意粉', '西西里猪扒意粉','西西里鸡扒意粉']},
    '饮品': {'饮料': ['加多宝', '果粒橙','可口可乐'],
    '奶茶': ['鸳鸯奶茶', '神仙奶茶','珍珠奶茶'],
    '糖水': ['绿豆沙', '莲子百合','红豆西米露']}}

    其中三级菜单流程图为:
  • 相关阅读:
    赶集个人 车源推送到 58
    fsockopen get,post 封装 (转)
    php write excel
    《HTTP协议详解》读书笔记---请求篇之消息报头
    《HTTP协议详解》读书笔记---请求篇之响应状态码
    《HTTP协议详解》读书笔记---请求篇之情求方法
    高效使用 GNOME Files(Nautilus) 管理文件
    手机无法连接 GSConnect:防火墙未开放端口
    Ubuntu 上安装 ArtiPub(一款开源的一文多发平台)
    GNOME 桌面必备扩展(GNOME Shell Extensions)
  • 原文地址:https://www.cnblogs.com/hejianping/p/6745034.html
Copyright © 2020-2023  润新知