需求说明:
编写一个食谱成本计算器,允许用户添加食谱所需的食材及其成本,然后计算整个食谱的总成本
解题思路:
- 使用字典存储食谱的名称和对应的食材成本。
- 定义函数来添加食材成本到指定食谱。
- 定义函数来计算指定食谱的总成本。
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.运行截图