You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将MENU中的'cost'参数移至独立Python文件?求助KeyError问题

问题解决与实现步骤

一、KeyError 报错修复

出现KeyError: 'cost'是因为你的MENU字典结构并非直接包含"cost"键,正确的MENU结构应该是将每种饮品作为顶级键,其对应值是包含"cost"的子字典。示例标准结构如下:

MENU = {
    "espresso": {
        "cost": 1.5,
        "ingredients": {
            "water": 50,
            "coffee": 18
        }
    },
    "latte": {
        "cost": 2.5,
        "ingredients": {
            "water": 200,
            "milk": 150,
            "coffee": 24
        }
    }
}

你需要修改打印成本的代码,先通过饮品名称获取对应子字典,再提取"cost"值:

drink = input("Would you like to buy a espresso, latte or cappuccino?:\n").lower()
if drink == "espresso":
    print(MENU[drink]["cost"])

二、将cost参数移至单独文件

步骤1:创建价格配置文件

新建一个名为drink_prices.py的Python文件,在其中定义饮品价格字典:

# drink_prices.py
DRINK_PRICES = {
    "espresso": 1.5,
    "latte": 2.5,
    "cappuccino": 3.0
}

步骤2:在主文件中导入并使用

在你的主文件Coffee Machine.py中,导入该字典并替换原有的成本调用逻辑:

# 导入单独文件中的价格字典
from drink_prices import DRINK_PRICES

# 后续逻辑中直接调用
drink = input("Would you like to buy a espresso, latte or cappuccino?:\n").lower()
if drink in DRINK_PRICES:
    print(DRINK_PRICES[drink])
else:
    print("Invalid drink choice.")

补充说明

  • 若MENU字典还需保留配料等其他信息,可继续保留,仅将成本取值替换为DRINK_PRICES[drink]即可。
  • 后续修改价格时,直接编辑drink_prices.py文件,无需改动主逻辑代码,维护更便捷。

内容的提问来源于stack exchange,提问作者joeca

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 05:55:26