录入每日三餐饮食,识别热量和营养成分,对比每日推荐摄入量,给出多吃蔬菜/少盐的精准建议。

设计一个 “每日三餐饮食营养分析与建议系统”,利用人工智能方法与技术课程中的知识,实现饮食录入、热量与营养成分识别、与每日推荐摄入量对比,并给出精准的健康建议(如“多吃蔬菜”“少盐”)。

1. 实际应用场景描述

现代人在健康管理中常遇到以下问题:

- 不清楚自己每天摄入了多少热量和营养。

- 难以坚持记录饮食,容易遗忘。

- 不知道自己的饮食结构是否合理。

- 缺乏个性化的健康建议。

本系统适用于:

- 想控制体重或增肌减脂的人群。

- 需要管理慢性病(如高血压、糖尿病)的患者。

- 关注健康饮食的家庭用户。

2. 痛点分析

1. 记录繁琐:传统方式需要手动查食物成分表,计算复杂。

2. 数据不准确:凭记忆估算容易导致误差。

3. 缺乏对比:不知道自己是否超标或不足。

4. 建议笼统:网上建议千篇一律,没有针对个人饮食结构的精准指导。

3. 核心逻辑讲解

1. 输入:用户录入每日三餐的食物名称与份量(如“米饭 200g”“鸡胸肉 150g”)。

2. 营养识别:

- 使用预训练的食物识别模型(CNN)或调用营养数据库 API(如 USDA、薄荷健康)。

- 获取每种食物的热量、蛋白质、脂肪、碳水化合物、钠含量等。

3. 累计计算:统计全天总摄入量。

4. 对比推荐值:

- 根据中国居民膳食指南的推荐摄入量(如热量 1800~2200 kcal,盐 <5g)。

5. 生成建议:

- 如果蔬菜不足 → “建议多吃蔬菜”。

- 如果钠超标 → “建议少盐”。

- 如果蛋白质不足 → “建议增加优质蛋白摄入”。

6. 输出:显示每日营养报告与健康建议。

4. 模块化 Python 代码

这里使用本地 JSON 营养数据库模拟 API 查询,并封装为模块化结构。

实际项目可接入真实营养 API 或训练食物识别模型。

文件结构

diet_advisor/

├── main.py

├── config.py

├── nutrition_db.py

├── diet_analyzer.py

└── README.md

"config.py"

# 每日推荐摄入量(示例值,可根据年龄性别调整)

DAILY_RECOMMENDATIONS = {

"calories": 2000, # 千卡

"protein": 60, # 克

"fat": 65, # 克

"carbohydrate": 300, # 克

"sodium": 2000 # 毫克(约5克盐)

}

"nutrition_db.py"

import json

def load_nutrition_db():

"""加载食物营养数据库"""

with open("nutrition_data.json", "r", encoding="utf-8") as f:

return json.load(f)

def get_food_nutrition(food_name, amount_g, db):

"""根据食物名称和重量获取营养成分"""

for item in db:

if item["name"] == food_name:

# 按比例计算

ratio = amount_g / 100.0

return {

"calories": item["calories"] * ratio,

"protein": item["protein"] * ratio,

"fat": item["fat"] * ratio,

"carbohydrate": item["carbohydrate"] * ratio,

"sodium": item["sodium"] * ratio

}

return None

"diet_analyzer.py"

from config import DAILY_RECOMMENDATIONS

def analyze_diet(total_nutrition, recommendations):

"""分析饮食并与推荐值对比"""

advice = []

# 热量

if total_nutrition["calories"] > recommendations["calories"]:

advice.append("热量摄入偏高,建议减少高热量食物。")

elif total_nutrition["calories"] < recommendations["calories"] * 0.8:

advice.append("热量摄入偏低,可适当增加主食或蛋白质。")

# 蛋白质

if total_nutrition["protein"] < recommendations["protein"] * 0.9:

advice.append("蛋白质摄入不足,建议增加鸡蛋、鱼、豆制品。")

# 脂肪

if total_nutrition["fat"] > recommendations["fat"]:

advice.append("脂肪摄入偏高,建议减少油炸食品。")

# 碳水化合物

if total_nutrition["carbohydrate"] < recommendations["carbohydrate"] * 0.8:

advice.append("碳水化合物摄入不足,可适当增加全谷物。")

# 钠(盐)

if total_nutrition["sodium"] > recommendations["sodium"]:

advice.append("钠摄入超标,建议少盐,少吃腌制食品。")

# 蔬菜建议(假设蔬菜不足时钠易超标)

if total_nutrition["sodium"] > recommendations["sodium"] * 0.9:

advice.append("建议多吃蔬菜,补充钾离子平衡钠。")

return advice

"main.py"

from nutrition_db import load_nutrition_db, get_food_nutrition

from diet_analyzer import analyze_diet

import json

def main():

print("=== 每日饮食营养分析系统 ===")

db = load_nutrition_db()

total = {

"calories": 0,

"protein": 0,

"fat": 0,

"carbohydrate": 0,

"sodium": 0

}

meals = {

"早餐": [],

"午餐": [],

"晚餐": []

}

for meal in meals:

print(f"\n请输入{meal}的食物(格式:食物名 重量g,输入done结束):")

while True:

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

if entry.lower() == "done":

break

try:

food, amount = entry.rsplit(" ", 1)

amount = float(amount)

nutri = get_food_nutrition(food, amount, db)

if nutri:

for k in total:

total[k] += nutri[k]

meals[meal].append((food, amount, nutri))

print(f"已添加:{food} {amount}g")

else:

print("未找到该食物的营养数据。")

except ValueError:

print("输入格式错误,请重新输入。")

print("\n=== 今日营养摄入汇总 ===")

for k, v in total.items():

unit = "千卡" if k == "calories" else ("克" if k != "sodium" else "毫克")

print(f"{k}: {v:.1f}{unit}")

advice = analyze_diet(total, DAILY_RECOMMENDATIONS)

print("\n=== 健康建议 ===")

if advice:

for a in advice:

print("- " + a)

else:

print("今日饮食均衡,继续保持!")

if __name__ == "__main__":

main()

"nutrition_data.json"(示例数据)

[

{"name": "米饭", "calories": 116, "protein": 2.6, "fat": 0.3, "carbohydrate": 25.9, "sodium": 1},

{"name": "鸡胸肉", "calories": 165, "protein": 31, "fat": 3.6, "carbohydrate": 0, "sodium": 74},

{"name": "西兰花", "calories": 34, "protein": 2.8, "fat": 0.4, "carbohydrate": 6.6, "sodium": 33},

{"name": "食盐", "calories": 0, "protein": 0, "fat": 0, "carbohydrate": 0, "sodium": 39311}

]

5. README.md

# 每日饮食营养分析系统

## 功能

- 录入每日三餐食物与份量

- 自动计算热量与营养成分

- 对比每日推荐摄入量

- 给出个性化健康建议

## 安装

bash

pip install json

(仅标准库,无需额外安装)

## 使用

1. 编辑 `nutrition_data.json` 添加食物营养数据

2. 运行 `python main.py`

3. 按提示输入三餐食物与重量

4. 查看营养汇总与健康建议

## 扩展

- 接入薄荷健康/USDA API 自动获取营养数据

- 增加 BMI 与运动消耗计算

- 开发 Web 或移动端界面

6. 使用说明

1. 在

"nutrition_data.json" 中添加常用食物的营养数据。

2. 运行

"main.py",按提示输入三餐食物与重量(单位:克)。

3. 程序会计算总摄入量并给出建议。

4. 可根据个人情况修改

"DAILY_RECOMMENDATIONS"。

7. 核心知识点卡片

知识点 说明

营养数据库 JSON 存储食物营养成分

比例计算 根据实际重量换算营养值

数据分析 对比推荐值与摄入量

模块化设计 分离数据库、分析、主程序

用户输入处理 字符串分割与异常处理

健康建议生成 基于阈值的规则推理

8. 总结

本系统通过 食物营养数据库 + 规则分析,实现了每日饮食的自动分析与个性化建议,解决了记录繁琐、数据不准确、建议笼统的痛点。

当前示例使用本地 JSON 数据,实际应用可升级为:

- 接入真实营养 API(如薄荷健康、USDA)

- 结合用户身体数据(身高、体重、运动量)动态调整推荐值

- 开发 Web/移动端,方便日常使用

这样就能打造一个真正实用的 AI 营养健康助手。

如果你愿意,还可以接入薄荷健康 API 或训练一个食物识别模型,让用户直接拍照识别食物,进一步提升易用性。

利用AI高效解决实际问题,如果你觉得这个工具好用,欢迎关注我!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1185050.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python系列Bug修复|如何解决 pip install 安装报错 ModuleNotFoundError: No module named ‘click’ 问题

摘要 你在使用pip安装/运行click时遇到ModuleNotFoundError: No module named click报错&#xff0c;该问题核心诱因是环境一致性问题&#xff08;pip与python版本错位&#xff0c;占比45%&#xff09; 安装不完整 权限不足 虚拟环境未激活 Python版本不兼容 缓存损坏&…

基于 YOLOv8 的反光衣智能检测系统设计与实现—从数据集构建到 PyQt5 可视化部署的完整实践

基于 YOLOv8 的反光衣智能检测系统设计与实现 一、项目背景与研究意义 在城市夜间施工、道路巡检、工地作业等高风险场景中&#xff0c;反光衣是保障人员安全的核心防护装备之一。然而&#xff0c;在实际管理过程中&#xff0c;仍大量依赖人工巡查方式进行穿戴监管&#xff0…

Glary Utilities v6.37.0.41 电脑系统优化清理神器

Glary Utilities v6.37.0.41 便携版是一款专业电脑系统优化工具&#xff0c;集成深层清理、注册表修复等数十种实用功能&#xff0c;适配各类 Windows 系统&#xff0c;能轻松解决电脑卡顿、存储不足等问题&#xff0c;是家庭用户与专业人士的优选系统维护工具。一、核心功能亮…

降本增效的终极实践:企业级智能体开发平台在人力资源数字化中的场景落地

人力资源部门正经历从职能管理到战略伙伴的转型&#xff0c;但大量事务性工作仍消耗着HR的专业精力。利用企业级智能体开发平台&#xff0c;企业可以构建一系列HR智能体&#xff0c;实现人力资源服务的自动化、智能化与个性化&#xff0c;从而释放HR的战略价值。 一、招聘流程…

day153—回溯—子集(LeetCode-78)

题目描述给你一个整数数组 nums &#xff0c;数组中的元素 互不相同 。返回该数组所有可能的子集&#xff08;幂集&#xff09;。解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。示例 1&#xff1a;输入&#xff1a;nums [1,2,3] 输出&#xff1a;[[],[1],[2],[1,2],…

Fastapi全面教程:常用 API 串联与实战指南

大家好&#xff0c;我是jobleap.cn的小九。在生产环境下&#xff0c;我们不再简单地使用 uvicorn main:app&#xff0c;而是需要考虑进程守护、多核并发、故障自启以及特权端口管理。 &#x1f6e0; 方案一&#xff1a;PM2 方案&#xff08;最简单、全能&#xff09; PM2 本是 …

Python系列Bug修复|如何解决 pip install 安装报错 ModuleNotFoundError: No module named ‘websockets’ 问题

摘要 你在使用pip安装/运行websockets时遇到ModuleNotFoundError: No module named websockets报错&#xff0c;该问题核心诱因是环境一致性问题&#xff08;pip与python版本错位&#xff0c;占比40%&#xff09; 模块名拼写错误&#xff08;单数/复数混淆&#xff0c;占比10%…

【图像去噪】基于均值+中值+软硬阙值小波变换图像去噪附Matlab代码

✅作者简介&#xff1a;热爱数据处理、建模、算法设计的Matlab仿真开发者。&#x1f34e;更多Matlab代码及仿真咨询内容点击 &#x1f517;&#xff1a;Matlab科研工作室&#x1f34a;个人信条&#xff1a;格物致知。&#x1f525; 内容介绍一、技术背景与核心目标图像去噪是数…

2026 年 1 月环氧地坪漆厂家推荐排行榜,环氧彩砂自流平,防静电/水性/室内/车间/车库环氧地坪漆,专业施工与持久耐磨品质之选 - 企业推荐官【官方】

2026年1月环氧地坪漆厂家推荐排行榜:专业施工与持久耐磨品质之选 随着现代工业、商业及公共设施对地面环境要求的日益提升,环氧地坪漆及其衍生系统,如环氧彩砂自流平、防静电环氧地坪漆、水性环氧地坪漆等,已成为保…

2026深圳GEO服务商评测指南:技术实力与实战效果双维度解析

2026年生成式AI技术的商业变现深度落地&#xff0c;推动GEO&#xff08;生成式引擎优化&#xff09;成为深圳企业布局智能流量、构建数字化竞争优势的核心战略。作为粤港澳大湾区科创核心&#xff0c;深圳集聚了海量科创企业、跨境电商龙头、金融科技机构及中小微商户&#xff…

完整教程:专题:2025年脑机接口产业蓝皮书:市场规模、专利技术、投融资与临床应用|附40+份报告PDF、数据、可视化模板汇总下载

完整教程:专题:2025年脑机接口产业蓝皮书:市场规模、专利技术、投融资与临床应用|附40+份报告PDF、数据、可视化模板汇总下载pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto …

基于 YOLOv8 的猪只行为智能识别系统实践[目标检测完整源码]

基于 YOLOv8 的猪只行为智能识别系统实践[目标检测完整源码] 一、项目背景与问题引入 在规模化养殖场中&#xff0c;猪只的进食、饮水、休息及异常行为直接关系到生长效率、健康水平和疾病预警。然而&#xff0c;传统人工巡检方式存在明显短板&#xff1a; 人力成本高&#…

如何解决 Error Get “https://registry-1.docker.io/v2/”: dial tcp xxx.xx.1xx:443: connect: connection time

摘要 你在使用Docker拉取镜像时遇到了Get "https://registry-1.docker.io/v2/": dial tcp xxx.xx.1xx:443: connect: connection timed out错误&#xff0c;该问题核心诱因是Docker官方镜像仓库&#xff08;Docker Hub&#xff09;网络访问受限&#xff08;占比80%&…

AI 写代码越快越危险?破解“高产低质”困局,这一步至关重要

一、 软件开发的核心命题&#xff1a;建立正反馈系统软件开发绕不开三大核心困境&#xff1a; 闭门研发缺反馈、功能跑偏难修正&#xff1b; 独自攻坚易内耗&#xff0c;重复造轮耗精力&#xff1b; 价值难显缺认可&#xff0c;能力成长无动力&#xff0c;如同孤身爬山&#xf…

基于 YOLOv8 的茶叶病害智能识别系统[目标检测完整源码]

基于 YOLOv8 的茶叶病害智能识别系统[目标检测完整源码] 摘要 随着智慧农业与数字化种植的不断推进&#xff0c;传统依赖人工经验的茶叶病害巡检方式已难以满足规模化、精细化管理需求。本文围绕 茶叶病虫害自动识别 这一典型农业视觉场景&#xff0c;介绍了一套基于 YOLOv8 …

Python系列Bug修复|如何解决 pip install 安装报错 ModuleNotFoundError: No module named ‘trio’ 问题

摘要 你在使用pip安装/运行trio时遇到ModuleNotFoundError: No module named trio报错&#xff0c;该问题核心诱因是环境一致性问题&#xff08;pip与python版本错位&#xff0c;占比45%&#xff09; 安装不完整 权限不足 虚拟环境未激活 Python版本不兼容 缓存损坏&#…

别把 Cursor 只当代码补全工具!这样做,让 AI 真正读懂你的项目架构

在 AI 代码协作时代&#xff0c;Cursor 不再只是一个“AI 代码补全工具”&#xff0c;它更像是一个可被“配置”与“驱动”的智能开发引擎。如果你想让 Cursor 真正成为你团队的“项目开发助理”&#xff0c;你需要做两件事&#xff1a; 把项目的关键知识&#xff08;架构、设计…

【水果分类】基于计算机视觉和前馈神经网络自动水果分类系统附Matlab代码

✅作者简介&#xff1a;热爱数据处理、建模、算法设计的Matlab仿真开发者。&#x1f34e;更多Matlab代码及仿真咨询内容点击 &#x1f517;&#xff1a;Matlab科研工作室&#x1f34a;个人信条&#xff1a;格物致知。&#x1f525; 内容介绍一、技术背景与核心目标水果分类是农…

Python系列Bug修复|如何解决 pip install 安装报错 ModuleNotFoundError: No module named ‘aiohttp’ 问题

摘要 你在使用pip安装/运行aiohttp时遇到ModuleNotFoundError: No module named aiohttp报错&#xff0c;该问题核心诱因是环境一致性问题&#xff08;pip与python版本错位&#xff0c;占比40%&#xff09; 安装不完整 权限不足 虚拟环境未激活 Python版本不兼容 缓存损坏…

2026年1月电动搬运车厂家推荐排行榜,四轮电动搬运车,1~10吨电动搬运车,高效搬运解决方案优选指南 - 企业推荐官【官方】

2026年1月电动搬运车厂家推荐排行榜:四轮电动搬运车1~10吨高效搬运解决方案优选指南 在制造业、仓储物流、大型商超及各类工业场景中,物料的高效、安全搬运是保障生产运营流畅性的关键环节。电动搬运车,特别是四轮电…