python基础#函数案例-食谱成本计算器

需求说明:

编写一个食谱成本计算器,允许用户添加食谱所需的食材及其成本,然后计算整个食谱的总成本


解题思路:

  1. 使用字典存储食谱的名称和对应的食材成本。
  2. 定义函数来添加食材成本到指定食谱。
  3. 定义函数来计算指定食谱的总成本。

1.定义字典及字典内容
menu = {
    "粥": {"米饭": 10, "面包": 5, "奶酪": 2},
    "炒饭": {"米饭": 15, "面包": 10, "鸡蛋": 5},
    "烧鸡": {"鸡肉": 20, "生姜": 5, "葱姜": 3, "料酒": 2},
}
2.定义两个空列表,食材列表和成本列表
food_list = []
cost_list = []

3.定义add_cost()函数,添加食谱、食材及食材成本

def add_cost():
	# 定义空字典food_dict
    food_dict = {}
    while True:
        menu_name = input("请输入要添加成本的食谱名称:")
        if menu_name in menu:
            print(f"{menu_name} 已存在,请重新输入!")
            continue
        while True:
            food_name = input("请输入食材名称:")
            for food in menu_name:
                if food_name == food:
                    print(f"{food_name} 已存在,请重新输入!")
                    continue
                else:
                	# 将食材添加到食材列表
                    food_list.append(food_name)
                    food_cost = int(input("请输入食材成本:"))
                    # 添加食材成本到成本列表
                    cost_list.append(food_cost)
                    print(f"{food_name} 已添加到 {menu_name} 食谱!")
                    break

            y_n = input("是否继续添加食材?(y/n)").lower()
            if y_n == "n":
                break
        # 使用zip()函数将食材列表和成本列表拼接,采用空字典food_dict接收
        for k, v in zip(food_list, cost_list):
            food_dict[k] = v

        menu[menu_name] = food_dict
        print(f"{menu_name} 食谱已添加!")

        y_n = input("是否继续添加食谱?(y/n)").lower()
        if y_n == "n":
            break
4.定义count_cost()函数计算食谱的食材成本	
def count_cost():
    menu_name = input("请输入要计算成本的食谱名称:")
    if menu_name not in menu:
        print(f"{menu_name} 不存在!")
    else:
        total_cost = 0
        for food_name in menu[menu_name]:
            total_cost += menu[menu_name][food_name]
        print(f"该{menu_name}食谱的总成本为:{total_cost}元")
5.定义view_menu查看全部食谱和包含的食材
def view_menu():
    for menu_name in menu:
        print(f"食谱: {menu_name}")
        print("食材:", end=" ")
        for food_name, cost in menu[menu_name].items():
            print(f"{food_name}, 成本: {cost}元", end="  ")
        print()
6.通过while循环设置菜单
while True:
    print("1. 添加食材成本")
    print("2. 计算食谱总成本")
    print("3. 显示所有食谱及其食材")
    print("0. 退出")
    choice = input("请输入选项:")
    if choice == "1":
        add_cost()
    elif choice == "2":
        count_cost()
    elif choice == "3":
        view_menu()
    elif choice == "0":
        break
    else:
        print("输入错误,请重新输入!")

7.运行截图

菜单
添加
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值