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

