news 2026/2/14 11:53:17

开发早餐食谱推荐工具,输入食材耗时(5/10/15分钟),推荐简单易做的早餐,附带步骤,支持收藏,帮上班族快速搞定早餐营养不将就。

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
开发早餐食谱推荐工具,输入食材耗时(5/10/15分钟),推荐简单易做的早餐,附带步骤,支持收藏,帮上班族快速搞定早餐营养不将就。

1. 实际应用场景与痛点

场景

上班族早晨时间紧张,常常:

- 来不及准备早餐,随便吃点零食或直接空腹上班

- 想吃得健康但不知道做什么

- 食材有限,需要根据家里现有的东西推荐

- 收藏喜欢的食谱,方便重复使用

痛点

1. 时间紧迫:早上只有 5~15 分钟准备时间。

2. 选择困难:面对众多食谱无从下手。

3. 食材限制:需要根据现有食材推荐。

4. 缺乏记录:喜欢的食谱容易忘记,下次还得重新搜索。

2. 核心逻辑讲解

1. 输入条件

- 可用时间(5/10/15 分钟)

- 可选输入现有食材(后续可扩展)

2. 食谱筛选

- 根据时间筛选匹配的食谱

3. 随机推荐

- 从符合条件的食谱中随机推荐一款,避免单调

4. 详细步骤展示

- 显示食材清单与制作步骤

5. 收藏功能

- 可将喜欢的食谱保存到本地 JSON 文件

6. 模块化设计

- 分离数据、推荐逻辑、收藏管理、界面交互

3. 项目结构

breakfast_recommender/

├── main.py # 主程序入口

├── recipes.py # 食谱数据与筛选逻辑

├── favorites.py # 收藏管理

├── data/

│ ├── recipes.json # 食谱数据库

│ └── favorites.json # 收藏列表

├── README.md

└── USAGE.md

4. 核心代码

"recipes.py"

import json

import random

RECIPES_FILE = "data/recipes.json"

class RecipeRecommender:

def __init__(self):

with open(RECIPES_FILE, "r", encoding="utf-8") as f:

self.recipes = json.load(f)

def recommend(self, max_time):

candidates = [r for r in self.recipes if r["time"] <= max_time]

if not candidates:

return None

return random.choice(candidates)

"favorites.py"

import json

import os

FAVORITES_FILE = "data/favorites.json"

class FavoriteManager:

def __init__(self):

os.makedirs("data", exist_ok=True)

try:

with open(FAVORITES_FILE, "r", encoding="utf-8") as f:

self.favs = json.load(f)

except FileNotFoundError:

self.favs = []

def add(self, recipe):

if recipe not in self.favs:

self.favs.append(recipe)

self.save()

def save(self):

with open(FAVORITES_FILE, "w", encoding="utf-8") as f:

json.dump(self.favs, f, ensure_ascii=False, indent=4)

def list_favorites(self):

return self.favs

"main.py"

from recipes import RecipeRecommender

from favorites import FavoriteManager

def print_recipe(recipe):

print(f"\n🍳 {recipe['name']} ({recipe['time']}分钟)")

print("食材:", ", ".join(recipe["ingredients"]))

print("步骤:")

for i, step in enumerate(recipe["steps"], 1):

print(f" {i}. {step}")

def main():

recommender = RecipeRecommender()

fav_manager = FavoriteManager()

while True:

print("\n=== 早餐食谱推荐工具 ===")

print("1. 推荐早餐")

print("2. 查看收藏")

print("0. 退出")

choice = input("请选择: ").strip()

if choice == "1":

time_map = {"1": 5, "2": 10, "3": 15}

print("选择可用时间: 1)5分钟 2)10分钟 3)15分钟")

t_choice = input("> ").strip()

max_time = time_map.get(t_choice, 10)

recipe = recommender.recommend(max_time)

if recipe:

print_recipe(recipe)

if input("\n收藏此食谱? (y/n): ").lower() == "y":

fav_manager.add(recipe)

print("✅ 已收藏")

else:

print("❌ 无匹配食谱")

elif choice == "2":

favs = fav_manager.list_favorites()

if not favs:

print("暂无收藏")

else:

for r in favs:

print(f"- {r['name']} ({r['time']}分钟)")

elif choice == "0":

break

else:

print("无效选择")

if __name__ == "__main__":

main()

5.

"data/recipes.json" 示例

[

{

"name": "牛奶燕麦粥",

"time": 5,

"ingredients": ["燕麦片", "牛奶"],

"steps": ["锅中加水煮沸", "加入燕麦片煮2分钟", "倒入牛奶搅匀即可"]

},

{

"name": "鸡蛋三明治",

"time": 10,

"ingredients": ["面包", "鸡蛋", "生菜"],

"steps": ["煎蛋", "面包烤热", "夹入鸡蛋和生菜"]

},

{

"name": "香蕉酸奶杯",

"time": 5,

"ingredients": ["香蕉", "酸奶"],

"steps": ["香蕉切片", "倒入酸奶拌匀"]

}

]

6. README.md

# 🥣 早餐食谱推荐工具

一个用 Python 编写的 CLI 工具,根据可用时间推荐简单易做的早餐,支持收藏喜欢的食谱。

## 功能

- 按时间(5/10/15分钟)推荐早餐

- 显示食材与详细步骤

- 收藏喜欢的食谱

- 数据持久化(JSON)

## 安装

bash

git clone "https://github.com/yourname/breakfast_recommender.git" (https://github.com/yourname/breakfast_recommender.git)

cd breakfast_recommender

## 运行

bash

python main.py

7. USAGE.md

# 使用说明

1. 运行 `python main.py`。

2. 选择可用时间,获取推荐食谱。

3. 可收藏喜欢的食谱,下次直接查看。

4. 数据保存在 `data/` 目录下。

8. 核心知识点卡片

知识点 说明

JSON 数据持久化 存储食谱与收藏列表

模块化设计 分离数据、逻辑、交互

随机选择 避免推荐单调

条件筛选 根据时间匹配食谱

CLI 交互 简单易用

收藏功能 提升用户体验

9. 总结

这个工具解决了时间紧、选择难、无记录三大痛点,通过条件筛选 + 随机推荐 + 收藏管理,让上班族在几秒钟内获得合适的早餐方案,并可持续积累自己的早餐库。

它适合:

- 个人日常使用

- 合租室友共享

- 扩展为 Web/APP 服务

如果你需要,可以在下一步:

- 增加 食材过滤(根据现有食材推荐)

- 增加 营养标签(高蛋白、低脂等)

- 开发 手机端 GUI(Kivy/Flutter)

利用AI解决实际问题,如果你觉得这个工具好用,欢迎关注长安牧笛!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/9 19:10:03

云平台云应用运维实施技术方案

建设目标 为企业、应用开发者、维护者提供一站式服务提供本地化实施及技术支持服务能力提供全面的解决方案咨询及实施能力 云计算应用集成解决方案咨询及集成实施能力云计算系统集成解决方案咨询及集成实施能力云计算数据集成解决方案咨询及集成实施能力云主机平台、私有云、混…

作者头像 李华
网站建设 2026/2/11 21:05:32

什么是RS485转LoRa一对多通讯?一篇看懂物联网设备无线组网逻辑

微型LoRa数传模块凭借小体积、低功耗、远距离、抗干扰的核心优势&#xff0c;主要适配低速率、小数据量、电池供电、布线困难的物联网场景&#xff0c;以下是其细分且具体的应用方向&#xff1a; 一、 智慧工业场景 1.设备状态监测&#xff1a;嵌入电机、泵体、机床等设备的…

作者头像 李华
网站建设 2026/2/13 7:46:26

Motia事件驱动的内核:深入适配器(Adapter)层看消息队列的流转

在构建复杂的 AI Agent 系统时&#xff0c;如何保证任务的异步处理、系统的高可用以及各组件之间的解耦&#xff1f;Motia 给出的答案是一个精妙的事件驱动内核。本文作为 Motia 源码深度解析系列的第四篇&#xff0c;将把目光聚焦于 packages/adapters&#xff0c;探索 Motia …

作者头像 李华
网站建设 2026/2/6 19:46:47

一份消除VM蔓延的全面指南

VM 蔓延&#xff08;又称虚拟化蔓延&#xff09;&#xff0c;指环境中虚拟机&#xff08;VM&#xff09;数量失控增长的现象。它常导致资源浪费、成本攀升与管理难题&#xff0c;因此&#xff0c;规避 VM 蔓延刻不容缓。下文将为您分步解析 VM 蔓延的识别、管理与预防方法。一、…

作者头像 李华
网站建设 2026/2/9 12:55:33

基于Chrome140的Google自动化(关键词浏览)——脚本撰写(二)

引言在上一篇文章《基于Chrome140的Google自动化&#xff08;关键词浏览&#xff09;——需求分析&环境搭建&#xff08;一&#xff09;》中&#xff0c;我们完成了开发环境的准备工作&#xff0c;包括Python环境配置、uv包管理器安装、Playwright框架部署以及Chrome浏览器…

作者头像 李华