如何将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
相关产品推荐
相关产品推荐

