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

Python食谱项目:如何用字典实现含计量单位的食材展示

解决Python食谱项目的食材显示问题

方案1:调整字典值为元组/字典,存储数量和单位

把原来字典里仅存数量的值,改成包含数量+单位的元组(或小字典),就能在打印时同时输出三者信息。

示例代码(元组版):

# 定义食谱:键为食材名,值为(数量, 单位)的元组
recipe = {
    "面粉": (500, "克"),
    "牛奶": (200, "毫升"),
    "鸡蛋": (2, "个")
}

# 遍历并格式化打印
for ingredient, (amount, unit) in recipe.items():
    print(f"{ingredient} = {amount} {unit}")

如果用小字典替代元组,可读性更强,适合后续扩展更多属性:

recipe = {
    "面粉": {"amount": 500, "unit": "克"},
    "牛奶": {"amount": 200, "unit": "毫升"}
}

for ingredient, info in recipe.items():
    print(f"{ingredient} = {info['amount']} {info['unit']}")

方案2:用类封装食材信息(面向对象方式)

如果项目后续要扩展更多功能(比如添加食材备注、分类),用类封装食材会更灵活。

示例代码:

class Ingredient:
    def __init__(self, name, amount, unit):
        self.name = name
        self.amount = amount
        self.unit = unit
    
    # 自定义打印格式
    def __str__(self):
        return f"{self.name} = {self.amount} {self.unit}"

# 食谱用列表存储Ingredient对象
recipe = [
    Ingredient("面粉", 500, "克"),
    Ingredient("牛奶", 200, "毫升"),
    Ingredient("鸡蛋", 2, "个")
]

# 直接打印每个食材对象即可
for item in recipe:
    print(item)

额外提示:修正键值顺序

你当前打印出“500 = 面粉”,大概率是遍历字典时搞反了键和值的顺序。确保食材名是字典的键,数量/单位是值,遍历用for ingredient, value in recipe.items(),而非反过来。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 19:35:22