如何编写Python代码按日期生成含早中晚的随机餐单?多循环整合求助
解决方案
先修正代码问题,同时实现指定时间段内每日分早中晚的随机餐单生成需求:
关键修改说明
- 原函数无需接收参数,直接从对应餐品列表随机选择即可(原函数传入的参数未实际使用)
- 将餐单生成逻辑放入日期循环内部,确保每一天都会生成全新的随机餐品,而非重复使用同一组结果
- 明确划分早、午、晚三餐结构,给每个餐段分配对应的食物/饮品组合
修改后的完整代码
import random from datetime import timedelta, date # 定义各类餐品列表 主餐列表 = ["生菜包汉堡", "生菜包芝士汉堡", "金枪鱼卷", "生菜夹萨拉米", "鸡汤面", "鲜虾面", "牛肉面", "猪肉面"] 配菜列表 = ["薯片", "芹菜条", "凯撒沙拉", "主厨沙拉", "胡萝卜条", "苹果", "李子", "葡萄"] 饮品列表 = ["苹果汁", "牛奶", "桃汁", "橙汁", "宝矿力水特", "白开水"] # 随机选择餐品的工具函数 def 随机选餐(餐品列表): return random.choice(餐品列表) # 生成日期范围的函数 def 日期范围(开始日期, 结束日期): for n in range(0, int((结束日期 - 开始日期).days) + 1): yield 开始日期 + timedelta(n) # 设定餐单的日期范围 开始日期 = date(2023, 7, 6) 结束日期 = date(2023, 8, 14) # 遍历每一天生成对应餐单 for 日期 in 日期范围(开始日期, 结束日期): print(f"=== {日期.strftime('%Y-%m-%d')} 餐单 ===") # 早餐:主餐+饮品 print(f"早餐: {随机选餐(主餐列表)} + {随机选餐(饮品列表)}") # 午餐:主餐+配菜+饮品 print(f"午餐: {随机选餐(主餐列表)} + {随机选餐(配菜列表)} + {随机选餐(饮品列表)}") # 晚餐:主餐+配菜+饮品 print(f"晚餐: {随机选餐(主餐列表)} + {随机选餐(配菜列表)} + {随机选餐(饮品列表)}") print() # 空行分隔每日餐单
额外优化建议
- 若想让三餐餐品更贴合实际饮食规律,可以单独定义
早餐专属餐品、午餐专属餐品等列表,替换对应位置的调用 - 可添加连续餐单去重逻辑,避免连续多天出现完全重复的餐品组合
内容的提问来源于stack exchange,提问作者TMS
相关产品推荐
相关产品推荐

