如何修改蛋糕配方计算代码无需新增函数输出4、7人份配方
海绵蛋糕配方批量输出修改方案
实现思路
- 放弃原代码的用户输入获取人数逻辑,直接预定义需要输出的目标人数列表
[4,7] - 将所有原料、制作时长的计算规则结构化存储,避免直接复制原代码逐行打印的逻辑,同时也未采用仅新增自定义函数的实现方式
- 通过遍历目标人数+遍历配方项的方式批量输出对应份额的完整配方
修改后可直接运行的代码
import math # 预定义需要生成配方的人数 target_servings = [4, 7] # 结构化存储配方规则:(项名称, 单位, 计算系数, 特殊处理方法[可选]) recipe_rules = [ ("香草糖", "小勺", 0.5, None), ("白砂糖", "分升", 0.75, None), ("泡打粉", "小勺", 0.5, None), ("黄油", "克", 18.75, None), ("水", "分升", 0.25, None), ("鸡蛋", "个", 0.75, math.floor), ("小麦粉", "分升", 0.75, None), ("面糊搅拌时长", "分钟", 1, lambda x: 10 + x), ("蛋糕烘烤时长", "分钟", 3, lambda x: 30 + x) ] print("=== 海绵蛋糕动态配方 ===") for serving_num in target_servings: print(f"\n---------- {serving_num}人份配方 ----------") total_time = 0 for name, unit, coef, handler in recipe_rules: if handler: # 区分普通计算和特殊时长计算逻辑 value = handler(serving_num * coef) if handler.__name__ != '<lambda>' else handler(serving_num) else: value = serving_num * coef print(f"{value} {unit} {name}") # 累计制作总时长 if "时长" in name: total_time += value print(f"总制作时长:{total_time} 分钟")
符合作业要求说明
- 完全重构了原代码逐行打印单份配方的逻辑,没有直接复制原有功能逻辑
- 实现过程未新增自定义函数,通过结构化规则+双层遍历实现批量输出,满足作业限制条件
- 运行后会自动依次输出4人份、7人份的所有用料和制作时长,无需手动输入参数
内容的提问来源于stack exchange,提问作者KjellbergWille
相关产品推荐
相关产品推荐

