(05-modulo5)=
(m5-nutricao-e-suplementacao)=
# Módulo 5: Nutrição e Suplementação
```{admonition} 🟢 Premissa
:class: tip eph-box eph-box--premissa
Nutrição é o combustível e a matéria-prima para adaptações. Treino sem nutrição adequada é como construir uma casa sem material. Este módulo conecta bioquímica (Módulo 1) com prescrição prática.
>
> **Como navegar no módulo:**
> - **🔵 Prático:** passos imediatos para ajustar dieta hoje.
> - **🟢 Definição:** conceitos-chave traduzidos para linguagem simples.
> - **🔴 Técnico:** cálculos e códigos opcionais para quem quer auditar números.
> - **🟣 Evidências:** referências para validar decisões nutricionais.
```
Se você é iniciante (leigo nível 1), aqui vai a ideia central deste módulo:
> **Nutrição para performance** não é “comer limpo” ou seguir dietas da moda. É entender **quanto de energia** você precisa, **de que tipo**, e **quando** — para que o treino se transforme em resultado.
Antes de falar de macros, suplementos ou timing, precisamos alinhar a linguagem. A maioria das pessoas se perde porque tenta aplicar “receitas” sem entender os conceitos básicos.
:::{admonition} 🟢 Definição — Caloria (em linguagem simples)
:class: eph-box eph-box--definicao
**Caloria** é uma unidade de energia. Pense como “combustível” para o corpo. Se você coloca mais combustível do que gasta, o corpo armazena (ganha peso). Se gasta mais do que coloca, ele usa as reservas (perde peso).
No treino, não é só “calorias totais” — importa **de que tipo** (proteína, carboidrato, gordura) e **quando**.
:::
(fig-nutrition-fundamentals)=
```{mermaid}
:caption: "A nutrição para performance se apoia em três pilares: energia total, distribuição de macros e timing estratégico."
flowchart TD
E["Energia total (calorias)"] --> B["Balanço energético (superávit/déficit/manutenção)"]
M["Macronutrientes (proteína / carboidrato / gordura)"] --> F["Funções específicas (construção / combustível / hormônios)"]
T["Timing e distribuição (refeições, pré/pós-treino)"] --> O["Otimização de recuperação e performance"]
B --> R["Resultado (ganho/perda/manutenção)"]
F --> R
O --> R
style E fill:#0f172a,stroke:#e2e8f0,color:#f8fafc,stroke-width:1px
style B fill:#0f172a,stroke:#e2e8f0,color:#f8fafc,stroke-width:1px
style M fill:#0f172a,stroke:#e2e8f0,color:#f8fafc,stroke-width:1px
style F fill:#0f172a,stroke:#e2e8f0,color:#f8fafc,stroke-width:1px
style T fill:#0f172a,stroke:#e2e8f0,color:#f8fafc,stroke-width:1px
style O fill:#0f172a,stroke:#e2e8f0,color:#f8fafc,stroke-width:1px
style R fill:#0f172a,stroke:#e2e8f0,color:#f8fafc,stroke-width:1px
```
:::{admonition} 🎥 Vídeo Explicativo — Como calcular macros (PT-BR)
:class: eph-box eph-box--video
**Nível:** Iniciante
**[▶️ Assistir Vídeo: Aprenda a calcular seus macros para qualquer dieta](https://www.youtube.com/watch?v=PcJUOWdG7iw)**
Explica como transformar objetivo (bulking/cutting/manutenção) em números práticos.
:::
---
## 5.1 Balanço energético (a base de tudo)
### 5.1.1 Calorias entram, calorias saem
Antes de falar de macros e suplementos, precisamos aceitar a física básica:
- **Superávit calórico**: mais energia entra do que sai → ganho de peso (músculo + gordura)
- **Déficit calórico**: menos energia entra do que sai → perda de peso (gordura + algum músculo)
- **Manutenção**: entrada ≈ saída → peso estável
:::{admonition} 🟢 Definição — Balanço energético (sem complicação)
:class: eph-box eph-box--definicao
**Balanço energético** é a soma de tudo que você “gasta” (metabolismo basal + atividades) versus tudo que você “come”.
Para o leigo, a regra prática é:
- Se você quer **ganhar peso** (músculo + um pouco de gordura): coma um pouco mais do que gasta.
- Se você quer **perder peso**: coma um pouco menos.
- Se você quer **manter**: mantenha o equilíbrio.
O segredo é “um pouco”. Mudanças extremas geram fadiga e perda de massa magra.
:::
:::{admonition} 🟢 Definição — TDEE
:class: eph-box eph-box--definicao
Total Daily Energy Expenditure: gasto calórico total diário, incluindo metabolismo basal (BMR), termogênese alimentar (TEF), atividade física (EAT) e atividade não-exercício (NEAT).
:::
:::{admonition} 🟢 Definição — BMR, TEF, EAT, NEAT (em português simples)
:class: eph-box eph-box--definicao
- **BMR**: energia que seu corpo gasta em repouso (respirar, bater coração, etc.).
- **TEF**: energia gasta para digerir e absorver comida (cerca de 10% do que você come).
- **EAT**: energia gasta em exercício planejado (musculação, corrida, etc.).
- **NEAT**: energia gasta em movimentos do dia a dia (caminhar, subir escadas, etc.).
O TDEE é a soma desses quatro.
:::
### 5.1.2 Implicações práticas
| Objetivo | Balanço | Taxa aproximada |
|----------|---------|-----------------|
| Hipertrofia (bulk) | Superávit leve | +200–500 kcal/dia |
| Perda de gordura (cut) | Déficit moderado | −300–700 kcal/dia |
| Recomposição | Manutenção ou leve déficit | Mais lento, requer treino bem dosado |
:::{admonition} 🔵 Prático — Como estimar seu gasto calórico (TDEE)
:class: eph-box eph-box--pratico
Calculadoras online são um bom **ponto de partida**, mas o ajuste fino vem da prática.
1. **Use uma calculadora** (como a do código abaixo) para ter uma estimativa inicial do seu TDEE (Gasto Calórico Total Diário).
2. **Monitore seu peso** por 2–3 semanas comendo essa quantidade de calorias.
3. **Ajuste:**
* Peso subindo muito rápido? Reduza 200–300 kcal.
* Peso caindo muito rápido? Aumente 200–300 kcal.
* Peso estável? Você encontrou sua manutenção.
O espelho e a balança são seus melhores guias.
:::
### ✅ Checklist de aplicação rápida — Nutrição Base
- **Calcule um TDEE inicial** (calculadora ou código) e registre o número.
- **Pese-se 2–3×/semana**, nas mesmas condições, observando tendência e não o dia isolado.
- **Ajuste calorias em blocos de 200–300 kcal** se o peso subir/cair mais rápido do que o planejado.
- **Garanta proteína em 3–5 refeições** (0,3–0,5 g/kg cada) antes de pensar em suplementos.
- **Revise sono, estresse e recuperação (Módulo 3)** sempre que a fome ou o desempenho saírem do controle.
::::
````{dropdown} 🔴 Técnico — Código: Calculadora TDEE e Macros
:class-container: warning eph-box eph-box--tecnico
```python
# CÉLULA DE CÓDIGO: CALCULADORA TDEE + MACROS
# Objetivo: Calcular necessidades energéticas e distribuição de macronutrientes
def calcular_tdee():
"""Calcula gasto calórico total diário usando fórmula Mifflin-St Jeor"""
print("=== CALCULADORA TDEE ===")
# Dados básicos
idade = int(input("Sua idade: "))
peso = float(input("Seu peso (kg): "))
altura = float(input("Sua altura (cm): "))
sexo = input("Seu sexo (M/F): ").upper()
# Cálculo BMR (Mifflin-St Jeor)
if sexo == 'M':
bmr = 10 * peso + 6.25 * altura - 5 * idade + 5
else: # F
bmr = 10 * peso + 6.25 * altura - 5 * idade - 161
print(f"\nSeu BMR (metabolismo basal): {bmr:.0f} kcal/dia")
# Fator de atividade
print("\nNível de atividade:")
print("1. Sedentário (pouco ou nenhum exercício)")
print("2. Leve (exercício 1-3 dias/semana)")
print("3. Moderado (exercício 3-5 dias/semana)")
print("4. Intenso (exercício 6-7 dias/semana)")
print("5. Muito intenso (exercício físico + trabalho físico)")
nivel = int(input("Escolha (1-5): "))
fatores = {1: 1.2, 2: 1.375, 3: 1.55, 4: 1.725, 5: 1.9}
fator_atividade = fatores.get(nivel, 1.55)
tdee = bmr * fator_atividade
print(f"\nSeu TDEE total: {tdee:.0f} kcal/dia")
return tdee
def calcular_macros(tdee):
"""Calcula distribuição de macronutrientes por objetivo"""
print("\n=== CALCULADORA DE MACROS ===")
print("\nObjetivo:")
print("1. Manter peso")
print("2. Perder gordura (cut)")
print("3. Ganhar massa (bulk)")
objetivo = int(input("Escolha (1-3): "))
# Ajuste calórico
if objetivo == 1:
calorias = tdee
print("\nObjetivo: Manter peso")
elif objetivo == 2:
calorias = tdee - 500 # Déficit de 500kcal
print("\nObjetivo: Perder gordura (déficit de 500kcal)")
else: # 3
calorias = tdee + 300 # Superávit moderado
print("\nObjetivo: Ganhar massa (superávit de 300kcal)")
print(f"Calorias alvo: {calorias:.0f} kcal/dia")
# Cálculo de proteína (baseado no peso)
peso = float(input("\nSeu peso atual (kg): "))
print("\nNível de atividade/treino:")
print("1. Sedentário/leve")
print("2. Moderado (3-5x/semana)")
print("3. Intenso (6-7x/semana)")
nivel_proteina = int(input("Escolha (1-3): "))
if nivel_proteina == 1:
proteina_g = peso * 1.6
elif nivel_proteina == 2:
proteina_g = peso * 2.0
else: # 3
proteina_g = peso * 2.2
proteina_kcal = proteina_g * 4
# Gorduras (20-30% das calorias)
gordura_pct = 0.25 # 25% padrão
gordura_kcal = calorias * gordura_pct
gordura_g = gordura_kcal / 9
# Carboidratos (restante das calorias)
carboidrato_kcal = calorias - proteina_kcal - gordura_kcal
carboidrato_g = carboidrato_kcal / 4
print("\n=== SUA DISTRIBUIÇÃO DE MACROS ===")
print(f"Calorias totais: {calorias:.0f} kcal")
print(f"Proteína: {proteina_g:.1f}g ({proteina_kcal:.0f} kcal) - {proteina_kcal/calorias*100:.1f}%")
print(f"Carboidratos: {carboidrato_g:.1f}g ({carboidrato_kcal:.0f} kcal) - {carboidrato_kcal/calorias*100:.1f}%")
print(f"Gorduras: {gordura_g:.1f}g ({gordura_kcal:.0f} kcal) - {gordura_kcal/calorias*100:.1f}%")
return {
'calorias': calorias,
'proteina': proteina_g,
'carboidratos': carboidrato_g,
'gorduras': gordura_g
}
def planejar_refeicoes(macros):
"""Distribui macros ao longo do dia"""
print("\n=== PLANEJADOR DE REFEIÇÕES ===")
n_refeicoes = int(input("Número de refeições por dia (3-6): "))
# Distribuição de proteína (igual entre refeições)
proteina_por_refeicao = macros['proteina'] / n_refeicoes
# Carboidratos (mais no pré/pós-treino)
carb_pre_treino = macros['carboidratos'] * 0.3
carb_pos_treino = macros['carboidratos'] * 0.25
carb_outras = macros['carboidratos'] - carb_pre_treino - carb_pos_treino
# Gorduras (menos no pré-treino)
gordura_pre_treino = macros['gorduras'] * 0.15
gordura_outras = macros['gorduras'] - gordura_pre_treino
print("\nDistribuição sugerida:")
print(f"Proteína por refeição: {proteina_por_refeicao:.1f}g")
print(f"\nPré-treino: {carb_pre_treino:.0f}g carb + {gordura_pre_treino:.1f}g gordura")
print(f"Pós-treino: {carb_pos_treino:.0f}g carb + {proteina_por_refeicao:.1f}g proteína")
print(f"Outras refeições: divida o restante")
return True
# Executar calculadora completa
if __name__ == "__main__":
tdee = calcular_tdee()
macros = calcular_macros(tdee)
planejar_refeicoes(macros)
print("\n=== RESUMO FINAL ===")
print("Use estes números como BASE. Ajuste conforme seu peso e energia.")
print("Pese-se 2-3x por semana e ajuste as calorias se necessário.")
# Para executar: copie e cole este código em um ambiente Python
```
:::{admonition} 🔵 Prático — Como usar esta calculadora
:class: eph-box eph-box--pratico
1. Execute o código em um ambiente Python (Jupyter, VS Code, etc.)
2. Responda às perguntas com seus dados
3. Use os resultados como ponto de partida
4. Ajuste após 2-3 semanas baseado no peso real
:::
````{dropdown} 🔴 Técnico — Código: Planejador Semanal de Refeições
:class-container: warning eph-box eph-box--tecnico
```python
# CÉLULA DE CÓDIGO: PLANEJADOR SEMANAL DE REFEIÇÕES
# Objetivo: Gerar plano alimentar semanal personalizado com base em macros e preferências
import json
from datetime import datetime
import random
import sys
# --- Funções de Input com Validação ---
def get_valid_input(prompt, type_cast, validation_func=lambda x: True, error_msg="Entrada inválida"):
"""Função genérica para capturar e validar inputs do usuário."""
while True:
try:
value = type_cast(input(prompt))
if validation_func(value):
return value
else:
print(f"❌ {error_msg}")
except (ValueError, TypeError):
print("❌ Por favor, insira um valor válido.")
except KeyboardInterrupt:
print("\n👋 Programa interrompido. Até mais!")
sys.exit()
# --- Classe Principal do Planejador ---
class PlanejadorRefeicoes:
def __init__(self):
# Banco de dados de alimentos (valores por 100g)
self.alimentos = {
'proteinas': {
'frango': {'p': 23, 'c': 0, 'g': 3.5, 'cal': 130}, 'carne': {'p': 25, 'c': 0, 'g': 15, 'cal': 250},
'peixe': {'p': 20, 'c': 0, 'g': 5, 'cal': 130}, 'ovos': {'p': 13, 'c': 1, 'g': 11, 'cal': 155},
'tofu': {'p': 8, 'c': 2, 'g': 4, 'cal': 76}, 'iogurte_grego': {'p': 10, 'c': 6, 'g': 4, 'cal': 100},
'whey': {'p': 75, 'c': 5, 'g': 2, 'cal': 330}
},
'carboidratos': {
'arroz': {'p': 3, 'c': 28, 'g': 0.3, 'cal': 130}, 'batata': {'p': 2, 'c': 17, 'g': 0.1, 'cal': 77},
'macarrao': {'p': 5, 'c': 25, 'g': 1, 'cal': 131}, 'pao': {'p': 8, 'c': 49, 'g': 3, 'cal': 265},
'aveia': {'p': 13, 'c': 67, 'g': 7, 'cal': 389}, 'banana': {'p': 1.3, 'c': 23, 'g': 0.4, 'cal': 89},
'frutas': {'p': 1, 'c': 15, 'g': 0.2, 'cal': 65}
},
'gorduras': {
'azeite': {'p': 0, 'c': 0, 'g': 100, 'cal': 884}, 'abacate': {'p': 2, 'c': 9, 'g': 15, 'cal': 160},
'nozes': {'p': 15, 'c': 16, 'g': 65, 'cal': 607}, 'amendoim': {'p': 25, 'c': 16, 'g': 49, 'cal': 567}
},
'vegetais': {
'brocolis': {'p': 3, 'c': 7, 'g': 0.4, 'cal': 34}, 'espinafre': {'p': 3, 'c': 4, 'g': 0.4, 'cal': 23},
'tomate': {'p': 1, 'c': 4, 'g': 0.2, 'cal': 18}, 'salada_folhas': {'p': 1, 'c': 3, 'g': 0.2, 'cal': 15},
'legumes_sortidos': {'p': 2, 'c': 8, 'g': 0.3, 'cal': 43}
}
}
self.templates_refeicoes = {
'☕️ Cafe da Manha': [{'proteina': ['ovos', 'iogurte_grego', 'whey'], 'carboidrato': ['aveia', 'pao', 'frutas'], 'gordura': ['nozes', 'abacate']}],
'☀️ Almoco': [{'proteina': ['frango', 'carne', 'peixe', 'tofu'], 'carboidrato': ['arroz', 'batata', 'macarrao'], 'vegetais': ['brocolis', 'legumes_sortidos', 'salada_folhas']}],
'🌙 Jantar': [{'proteina': ['peixe', 'frango', 'tofu'], 'vegetais': ['espinafre', 'brocolis', 'salada_folhas'], 'gordura': ['azeite', 'abacate']}],
'🏋️ Pre-Treino': [{'carboidrato': ['banana', 'aveia'], 'proteina': ['whey', 'iogurte_grego']}],
'🥤 Pos-Treino': [{'proteina': ['whey', 'frango'], 'carboidrato': ['banana', 'arroz', 'batata']}],
'🍎 Lanche': [{'proteina': ['iogurte_grego', 'nozes'], 'carboidrato': ['frutas', 'pao']}]
}
def calcular_macros_diarios(self):
"""Calcula as necessidades diárias de macronutrientes do usuário."""
print("\n--- 📊 PASSO 1: VAMOS CALCULAR SEUS MACROS ---")
peso = get_valid_input("Seu peso (kg): ", float, lambda x: 30 < x < 200, "Peso deve ser entre 30 e 200 kg.")
altura = get_valid_input("Sua altura (cm): ", float, lambda x: 100 < x < 250, "Altura deve ser entre 100 e 250 cm.")
idade = get_valid_input("Sua idade: ", int, lambda x: 14 < x < 100, "Idade deve ser entre 14 e 100 anos.")
sexo = get_valid_input("Seu sexo (M/F): ", str, lambda x: x.upper() in ['M', 'F'], "Sexo deve ser 'M' ou 'F'.").upper()
print("\nNível de atividade:")
print("1. Sedentário | 2. Leve (1-3x/sem) | 3. Moderado (3-5x/sem) | 4. Intenso (6-7x/sem)")
nivel_atividade = get_valid_input("Escolha seu nível (1-4): ", int, lambda x: 1 <= x <= 4)
print("\nQual seu objetivo principal?")
print("1. 🔥 Perder gordura (Cutting) | 2. ⚖️ Manter peso (Manutenção) | 3. 💪 Ganhar massa (Bulking)")
objetivo = get_valid_input("Escolha seu objetivo (1-3): ", int, lambda x: 1 <= x <= 3)
# Cálculo BMR (Mifflin-St Jeor) e TDEE
bmr = (10 * peso) + (6.25 * altura) - (5 * idade) + (5 if sexo == 'M' else -161)
fatores_atividade = {1: 1.2, 2: 1.375, 3: 1.55, 4: 1.725}
tdee = bmr * fatores_atividade[nivel_atividade]
ajustes_caloricos = {1: -400, 2: 0, 3: 300} # Cutting, Manutenção, Bulking
calorias_alvo = tdee + ajustes_caloricos[objetivo]
# Cálculo de Macros
proteina_g = peso * 2.0 # Recomendação padrão de 2g/kg
proteina_kcal = proteina_g * 4
gordura_kcal = calorias_alvo * 0.25 # 25% das calorias de gordura
gordura_g = gordura_kcal / 9
carboidrato_kcal = calorias_alvo - proteina_kcal - gordura_kcal
carboidrato_g = carboidrato_kcal / 4
macros = {'calorias': calorias_alvo, 'proteina': proteina_g, 'carboidrato': carboidrato_g, 'gordura': gordura_g}
print("\n--- ✅ SUAS METAS DIÁRIAS ---")
print(f"Calorias: {macros['calorias']:.0f} kcal")
print(f"Proteína: {macros['proteina']:.1f}g | Carboidratos: {macros['carboidrato']:.1f}g | Gorduras: {macros['gordura']:.1f}g")
return macros
def distribuir_refeicoes(self, macros_diarios):
"""Distribui os macros totais entre as refeições planejadas."""
n_refeicoes = get_valid_input("\nQuantas refeições você fará por dia (3-6)? ", int, lambda x: 3 <= x <= 6)
refeicoes_nomes = ['☕️ Cafe da Manha', '☀️ Almoco', '🌙 Jantar']
if n_refeicoes == 4: refeicoes_nomes.insert(2, '🍎 Lanche')
if n_refeicoes == 5: refeicoes_nomes.insert(2, '🍎 Lanche'); refeicoes_nomes.append('🍎 Lanche')
if n_refeicoes == 6: refeicoes_nomes = ['☕️ Cafe da Manha', '🍎 Lanche', '☀️ Almoco', '🏋️ Pre-Treino', '🥤 Pos-Treino', '🌙 Jantar']
distribuicao_pct = {'☕️ Cafe da Manha': 0.25, '☀️ Almoco': 0.30, '🌙 Jantar': 0.25, '🍎 Lanche': 0.1, '🏋️ Pre-Treino': 0.05, '🥤 Pos-Treino': 0.05}
macros_refeicoes = {}
for nome in refeicoes_nomes:
pct = distribuicao_pct[nome]
macros_refeicoes[nome] = {m: v * pct for m, v in macros_diarios.items()}
return macros_refeicoes
def gerar_refeicao(self, macros_alvo, template, preferencia):
"""Gera uma única refeição com base em um template e metas de macro."""
refeicao_final = {'alimentos': {}, 'macros_finais': {'p': 0, 'c': 0, 'g': 0, 'cal': 0}}
for categoria, opcoes in template.items():
alimento_nome = random.choice(opcoes)
# Filtro de preferências
if preferencia == 2 and alimento_nome in ['carne', 'frango', 'peixe']: alimento_nome = random.choice(['tofu', 'ovos'])
if preferencia == 3 and alimento_nome in ['carne', 'frango', 'peixe', 'ovos', 'iogurte_grego', 'whey']: alimento_nome = 'tofu'
# Encontrar dados do alimento
db_alimento = next((self.alimentos[cat][alimento_nome] for cat in self.alimentos if alimento_nome in self.alimentos[cat]), None)
if not db_alimento: continue
# Lógica simples de quantidade (pode ser aprimorada)
if categoria == 'proteina' and db_alimento['p'] > 0:
quantidade = (macros_alvo['proteina'] / db_alimento['p']) * 100
elif categoria == 'carboidrato' and db_alimento['c'] > 0:
quantidade = (macros_alvo['carboidrato'] / db_alimento['c']) * 100
elif categoria == 'gordura' and db_alimento['g'] > 0:
quantidade = (macros_alvo['gordura'] / db_alimento['g']) * 100
else: # Vegetais
quantidade = 150 # Porção fixa
quantidade = max(20, min(quantidade, 400)) # Limites razoáveis
refeicao_final['alimentos'][alimento_nome] = quantidade
fator = quantidade / 100
for macro in ['p', 'c', 'g', 'cal']:
refeicao_final['macros_finais'][macro] += db_alimento[macro] * fator
return refeicao_final
def gerar_plano_semanal(self, macros_refeicoes):
"""Gera um plano alimentar completo para 7 dias."""
print("\n--- 📝 PASSO 2: SUAS PREFERÊNCIAS ---")
print("1. Onívoro | 2. Vegetariano (Ovo-lacto) | 3. Vegano")
preferencia = get_valid_input("Escolha sua preferência alimentar (1-3): ", int, lambda x: 1 <= x <= 3)
plano_semanal = {}
dias_semana = ['Segunda', 'Terça', 'Quarta', 'Quinta', 'Sexta', 'Sábado', 'Domingo']
for dia in dias_semana:
plano_semanal[dia] = {}
for nome_refeicao, macros_alvo in macros_refeicoes.items():
template = random.choice(self.templates_refeicoes[nome_refeicao])
plano_semanal[dia][nome_refeicao] = self.gerar_refeicao(macros_alvo, template, preferencia)
print("\n--- 📆 PASSO 3: SEU PLANO SEMANAL ---")
return plano_semanal
def exibir_plano(self, plano_semanal):
"""Exibe o plano semanal de forma clara e organizada."""
for dia, refeicoes in plano_semanal.items():
print(f"\n--- {dia.upper()} ---")
total_dia = {'p': 0, 'c': 0, 'g': 0, 'cal': 0}
for nome, dados in refeicoes.items():
print(f"\n{nome}:")
for alimento, qtd in dados['alimentos'].items():
print(f" • {int(qtd)}g de {alimento.replace('_', ' ')}")
mf = dados['macros_finais']
print(f" └ P:{mf['p']:.1f}g C:{mf['c']:.1f}g G:{mf['g']:.1f}g ({mf['cal']:.0f}kcal)")
for m in total_dia: total_dia[m] += mf[m]
print("\n---------------------------------")
print(f"TOTAL DO DIA: P:{total_dia['p']:.1f}g C:{total_dia['c']:.1f}g G:{total_dia['g']:.1f}g ({total_dia['cal']:.0f}kcal)")
print("---------------------------------")
def gerar_lista_compras(self, plano_semanal):
"""Gera uma lista de compras consolidada para a semana."""
print("\n\n--- 🛒 PASSO 4: SUA LISTA DE COMPRAS ---")
lista_compras = {}
for dia in plano_semanal.values():
for refeicao in dia.values():
for alimento, qtd in refeicao['alimentos'].items():
lista_compras[alimento] = lista_compras.get(alimento, 0) + qtd
categorias_map = {cat: items for cat, items in self.alimentos.items()}
emoji_map = {'proteinas': '🥩', 'carboidratos': '🍞', 'gorduras': '🥑', 'vegetais': '🥬'}
for cat, emoji in emoji_map.items():
print(f"\n{emoji} {cat.upper()}:")
for alimento, qtd_total in sorted(lista_compras.items()):
if alimento in categorias_map[cat]:
print(f" • {alimento.replace('_', ' ').capitalize()}: {round(qtd_total / 50) * 50}g") # Arredonda para 50g
def salvar_plano(self, plano_semanal):
"""Salva o plano gerado em um arquivo JSON."""
if get_valid_input("\nDeseja salvar este plano em um arquivo? (S/N) ", str).upper() == 'S':
nome_arquivo = f"plano_alimentar_{datetime.now().strftime('%Y%m%d')}.json"
with open(nome_arquivo, 'w', encoding='utf-8') as f:
json.dump(plano_semanal, f, ensure_ascii=False, indent=2)
print(f"\n✅ Plano salvo com sucesso em: {nome_arquivo}")
def main():
"""Função principal que orquestra o planejador de refeições."""
try:
print("="*50)
print("🍽️ PLANEJADOR DE REFEIÇÕES AUTOMATIZADO 🍽️")
print("="*50)
planejador = PlanejadorRefeicoes()
macros_diarios = planejador.calcular_macros_diarios()
macros_refeicoes = planejador.distribuir_refeicoes(macros_diarios)
plano_semanal = planejador.gerar_plano_semanal(macros_refeicoes)
planejador.exibir_plano(plano_semanal)
planejador.gerar_lista_compras(plano_semanal)
planejador.salvar_plano(plano_semanal)
print("\n💡 Lembre-se: este é um guia. Ajuste as porções conforme sua fome e resultados!")
print("✅ Planejamento concluído!")
except KeyboardInterrupt:
print("\n👋 Programa interrompido pelo usuário. Até mais!")
except Exception as e:
print(f"\n❌ Ocorreu um erro inesperado: {e}")
if __name__ == "__main__":
main()
```
:::{admonition} 🔵 Prático — Como usar o planejador de refeições
:class: eph-box eph-box--pratico
1. **Execute o código** em um ambiente Python (Jupyter, VS Code, etc.).
2. **Responda às perguntas** sobre seus dados, nível de atividade e objetivo.
3. **Escolha suas preferências** alimentares (Onívoro, Vegetariano, Vegano).
4. **Receba seu plano personalizado** contendo:
- 📅 Refeições detalhadas para cada dia da semana.
- ⚖️ Quantidades em gramas para cada alimento.
- 📊 Macros (Proteína, Carbo, Gordura) de cada refeição e do total diário.
- 🛒 Lista de compras automática e organizada para a semana.
**Benefícios**: Gera um plano completo, prático e educacional em segundos, eliminando a complexidade de montar uma dieta do zero.
:::
````
---
## 5.2 Proteína (o macronutriente da construção)
### 5.2.1 Por que proteína é especial?
Proteína fornece aminoácidos — os tijolos para construir e reparar tecidos. Sem proteína suficiente, não há matéria-prima para hipertrofia, mesmo com treino perfeito.
Correlação com Módulo 1: {ref}`mTOR ` precisa de aminoácidos (especialmente leucina) para "autorizar" síntese proteica.
:::{admonition} 🟢 Definição — Aminoácidos (em linguagem simples)
:class: eph-box eph-box--definicao
**Aminoácidos** são as “peças” da proteína. Se a proteína é um tijolo, os aminoácidos são os minerais que formam o tijolo.
Existem 20 aminoácidos. O corpo pode fazer alguns, mas outros (essenciais) precisam vir da comida.
Para o treino, os mais importantes são os **ramificados** (BCAAs), especialmente a **leucina**, que funciona como um “interruptor” para construir músculo.
:::
:::{admonition} 🔵 Prático — Proteína para Longevidade
:class: eph-box eph-box--pratico
Além de hipertrofia, proteína adequada (1.6-2.2g/kg) preserva massa muscular com a idade - chave para longevidade ativa. Cada refeição proteica é investimento no seu "eu futuro".
:::
### 5.2.2 Quanto consumir?
| População | Recomendação |
|-----------|--------------|
| Sedentário | 0.8 g/kg/dia (RDA mínima) |
| Praticante de força | 1.6–2.2 g/kg/dia |
| Em déficit calórico | 2.0–2.4 g/kg/dia (protege massa magra) |
| Idosos (sarcopenia) | 1.2–1.6 g/kg/dia (limiar de MPS mais alto) |
:::{admonition} 🔵 Prático — Proteína para iniciantes (sem contar gramas)
:class: eph-box eph-box--pratico
Se você não quer pesar comida, use regras visuais:
- **Proteína do tamanho da sua palma** (carne, frango, peixe) ≈ 20–30g.
- **Ovos**: 2 ovos ≈ 12g.
- **Iogurte/grego**: 1 pote ≈ 15–20g.
Tente incluir uma “porção de proteína” em cada refeição principal (3–5x/dia).
:::
:::{admonition} 🟢 Definição — Limiar de leucina
:class: eph-box eph-box--definicao
Quantidade mínima de leucina (~2–3g por refeição) necessária para maximizar a resposta de síntese proteica muscular (MPS). Alcançado com ~25–40g de proteína de alta qualidade.
:::
:::{admonition} 🟢 Definição — MPS (já visto, mas reforço)
:class: eph-box eph-box--definicao
**MPS** é a “obra” de construção muscular. A proteína e o treino aumentam a necessidade de MPS; o sono e a recuperação ajudam a obra a continuar.
:::
### 5.2.3 Distribuição ao longo do dia
A MPS responde melhor a **pulsos de proteína** distribuídos do que a uma única refeição gigante.
:::{admonition} 🔵 Prático — Distribuição de proteína
:class: eph-box eph-box--pratico
- 3–5 refeições por dia com 0.3–0.5 g/kg cada
- Inclua proteína de qualidade (carne, ovos, laticínios, leguminosas + grãos)
- Pós-treino: não é mágico, mas faz sentido incluir proteína dentro de algumas horas
:::
:::{admonition} 🔵 Prático — Distribuição sem neurose
:class: eph-box eph-box--pratico
Se você treina 1x/dia e come 3–5 refeições, não precisa se preocupar com “janela de 30 min”. O que importa é:
- Proteína no café da manhã
- Proteína no almoço
- Proteína no jantar
- Se treinou, uma refeição com proteína nas horas seguintes
Se você treina 2x/dia, sim: o pós-treino do segundo treino importa mais.
:::
---
## 5.3 Carboidrato (o combustível de alta intensidade)
### 5.3.1 Função no exercício
Carboidrato é o substrato preferencial para esforços de alta intensidade (glicólise, Módulo 1). Estoques de glicogênio muscular e hepático determinam capacidade de trabalho intenso.
:::{admonition} 🟢 Definição — Glicogênio (reserva de carboidrato)
:class: eph-box eph-box--definicao
**Glicogênio** é a forma como o corpo armazena carboidrato (principalmente no músculo e no fígado).
Pense como um “tanque de combustível rápido”. Quando você faz um esforço intenso, o corpo usa esse tanque primeiro. Se ele estiver vazio, você sente fadiga rápida.
Carboidrato na dieta repõe esse tanque.
:::
### 5.3.2 Quanto consumir?
Depende do volume e intensidade do treino:
| Nível de atividade | Recomendação |
|--------------------|--------------|
| Treino leve / sedentário | 2–4 g/kg/dia |
| Treino moderado | 4–6 g/kg/dia |
| Treino intenso / 2x/dia | 6–10 g/kg/dia |
| Endurance alto volume | 8–12 g/kg/dia |
:::{admonition} 🔵 Prático — Carboidrato para leigos (sem contar gramas)
:class: eph-box eph-box--pratico
Se você não quer pesar comida, use regras visuais:
- **Uma porção de carboidrato** ≈ tamanho do seu punho fechado (arroz, batata, macarrão, pão).
- **Frutas**: 1 fruta média ≈ 15–20g.
- **Treino pesado**: inclua 2–3 porções no dia.
- **Dia leve**: 1–2 porções.
Se você treina 2x/dia ou faz esportes de resistência, aumente uma porção.
:::
### 5.3.3 Timing de carboidrato
- **Pré-treino**: garante glicogênio disponível
- **Pós-treino**: repõe glicogênio (mais importante se treinar novamente em <24h)
- **Basal**: completa as necessidades diárias
:::{admonition} 🔵 Prático — Timing sem exagero
:class: eph-box eph-box--pratico
Para a maioria das pessoas:
- **Pré-treino**: carboidrato 1–2h antes ajuda se você treina em jejum ou faz sessões longas.
- **Pós-treino**: carboidrato ajuda se você treina 2x/dia ou tem outra sessão no dia seguinte.
- **Resto do dia**: distribua o restante conforme energia e preferência.
Não precisa de “shake” imediato se você vai comer em 1–2h.
:::
:::{admonition} 🟡 Aviso — Low-carb e performance
:class: eph-box eph-box--aviso
Dietas muito baixas em carboidrato podem prejudicar performance em treinos de alta intensidade e reduzir adaptações de força/hipertrofia. Funcionam melhor para atividades de baixa intensidade ou objetivos específicos (ex: perda de peso em contexto controlado).
:::
---
## 5.4 Lipídios (hormônios e saúde)
### 5.4.1 Funções essenciais
- Produção hormonal (testosterona, estrogênio)
- Absorção de vitaminas lipossolúveis (A, D, E, K)
- Integridade de membranas celulares
- Energia para atividades de baixa intensidade
:::{admonition} 🟢 Definição — Gordura (em linguagem simples)
:class: eph-box eph-box--definicao
**Gordura** não é vilã. Ela é necessária para:
- Produzir hormônios (testosterona, estrogênio)
- Absorver vitaminas (A, D, E, K)
- Proteger células e tecidos
O problema é o excesso e o tipo errado (trans, excesso de saturada). O certo (monoinsaturada, ômega-3) ajuda.
:::
### 5.4.2 Quanto consumir?
- Mínimo: 0.5–0.7 g/kg/dia (para função hormonal)
- Típico: 0.8–1.5 g/kg/dia
- Abaixo de 15–20% das calorias totais pode prejudicar hormônios
::: {admonition} 🔵 Prático — Gordura sem pesar
:class: eph-box eph-box--pratico
Se você não quer pesar comida, use regras visuais:
- **1 colher de sopa de azeite** ≈ 10g.
- **Um punhado de nozes** ≈ 15g.
- **Meio abacate** ≈ 15g.
Tente incluir uma fonte de gordura em cada refeição principal (azeite, nozes, abacate, peixe).
:::
### ✅ Painel de decisão — Ajuste rápido de macros
| Sintoma | Calorias | Proteínas | Carboidratos/Gorduras |
|---------|----------|-----------|------------------------|
| Peso sobe rápido (>0,7%/sem) | Corte 200–300 kcal | Mantenha 1,8–2,0 g/kg | Reduza carboidrato primeiro |
| Peso não sobe e treinos travam | Some 200 kcal | Mantenha | Adicione carbo no pré/pós |
| Cut travado (peso estável 2+ sem) | Corte 200 kcal | Suba para 2,2 g/kg | Remova parte de gordura em dias off |
| Fome alta e energia baixa | Revise sono/estresse (Módulo 3) antes de subir calorias | Divida proteína em mais refeições | Redistribua carbo para treinos |
:::{admonition} 🟢 Definição — Integração com Módulo 6
:class: eph-box eph-box--definicao
Os ajustes acima só funcionam se você **auditar dados** (peso, medidas, RIR, biofeedback). No {ref}`Módulo 6 ` você verá como monitorar sinais objetivos e subjetivos para saber quando alterar calorias ou macros sem chute.
:::
### 5.4.3 Tipos de gordura
| Tipo | Fontes | Recomendação |
|------|--------|--------------|
| Saturada | Carne, laticínios, coco | Moderação |
| Monoinsaturada | Azeite, abacate, nozes | Base da ingestão |
| Poli-insaturada (ômega-3) | Peixes, linhaça | Priorizar |
| Trans | Industrializados | Evitar |
:::{admonition} 🔵 Prático — Ômega-3
:class: eph-box eph-box--pratico
- **Fontes**: peixes gordos (salmão, sardinha, cavala) 2–3x/semana.
- **Suplemento**: 1–3g de EPA+DHA por dia se o consumo de peixe for baixo.
- **Benefícios**: ajuda a controlar inflamação, pode melhorar recuperação e humor.
:::
---
## 5.5 Suplementos (o que realmente funciona)
### 5.5.1 A hierarquia da nutrição
Antes de pensar em suplementos:
1. **Calorias** adequadas ao objetivo
2. **Macros** bem distribuídos
3. **Micronutrientes** (variedade de alimentos)
4. **Timing** razoável
5. **Suplementos** (cereja do bolo)
:::{admonition} 🟢 Definição — Suplemento (o que é e o que não é)
:class: eph-box eph-box--definicao
**Suplemento** é algo que **complementa** uma dieta bem-feita. Não substitui comida.
Pense assim: se a sua dieta é uma casa, comida é o tijolo e o cimento. Suplemento é a pintura ou o jardim — melhora, mas não sustenta a estrutura.
Se a base (calorias, macros, variedade) não está ok, suplemento não vai fazer milagre.
:::
:::{admonition} 🟡 Aviso — Expectativas realistas
:class: eph-box eph-box--aviso
Nenhum suplemento substitui treino consistente e nutrição adequada. Os melhores suplementos oferecem vantagens marginais (3–5% em alguns casos). A maioria do que é vendido não tem evidência sólida.
:::
:::{admonition} 🔵 Prático — Como saber se você precisa de suplemento
:class: eph-box eph-box--pratico
Use este checklist rápido:
- Você atinge **proteína** com comida todos os dias?
- Você come **variado** (frutas, vegetais, fontes de gordura)?
- Você tem **deficiências** conhecidas (ex.: pouco sol, pouco peixe)?
- Seus treinos estão **limitados** por energia ou recuperação?
Se 2+ respostas forem “não”, a prioridade é ajustar a comida, não comprar suplemento.
:::
### 5.5.2 Suplementos com forte evidência
#### Creatina monohidratada
O suplemento mais estudado e mais eficaz para força e hipertrofia.
:::{admonition} 🟢 Definição — Creatina
:class: eph-box eph-box--definicao
Aumenta o pool de fosfocreatina muscular, melhorando performance em esforços curtos e repetidos e potencialmente favorecendo hipertrofia a longo prazo.
:::
- **Dose**: 3–5 g/dia (carga opcional: 20g/dia por 5–7 dias)
- **Timing**: qualquer hora (consistência importa mais)
- **Segurança**: bem tolerada em indivíduos saudáveis
:::{admonition} 🔵 Prático — Como tomar creatina sem complicar
:class: eph-box eph-box--pratico
- **Dose**: 5g por dia (qualquer hora).
- **Carga opcional**: 20g/dia por 5 dias se quiser encher rápido.
- **Importante**: beba água extra (creatina puxa água para o músculo).
- **Resultados**: aparecem em 2–4 semanas de uso consistente.
:::
#### Cafeína
Ergogênico para força, potência e endurance.
- **Dose**: 3–6 mg/kg, 30–60 min antes do treino
- **Efeito**: reduz percepção de esforço, aumenta alerta
- **Cuidado**: tolerância, sono, ansiedade
:::{admonition} 🟡 Aviso — Cafeína e sono
:class: eph-box eph-box--aviso
Cafeína tem meia vida de 4–6h. Se você toma à tarde, pode atrapalhar o sono — e sono ruim atrapalha recuperação e ganhos.
Regra simples: se você treina à noite, evite cafeína ou use uma dose pequena (1–2 mg/kg).
:::
#### Beta-alanina
Aumenta carnosina intramuscular (tampão — Módulo 1).
- **Dose**: 3–6 g/dia por 4+ semanas
- **Benefício**: esforços de 60–240s (ex: séries longas, sprints)
- **Efeito colateral**: parestesia (formigamento) — inofensivo
:::{admonition} 🔵 Prático — Como lidar com o formigamento
:class: eph-box eph-box--pratico
O formigamento (parestesia) é inofensivo e passa em 30–60 min. Se incomoda:
- Divida a dose (ex.: 2g de manhã, 2g à tarde).
- Use versões “sustained-release” (se encontrar).
- Ignore; é sinal de que o suplemento está funcionando.
:::
#### Proteína em pó (whey, caseína, vegetal)
Não é "mágica" — é conveniência para atingir metas proteicas.
:::{admonition} 🟢 Definição — Proteína em pó
:class: eph-box eph-box--definicao
**Proteína em pó** é uma forma concentrada de proteína, geralmente feita de leite (whey, caseína) ou fontes vegetais (soja, arroz, ervilha).
:::
````{dropdown} 🔴 Técnico — Tipos de proteína em pó (whey, caseína e vegetal)
:class-container: warning eph-box eph-box--tecnico
- **Whey**: absorção rápida, bom pós-treino ou entre refeições
- **Caseína**: absorção lenta, bom antes de dormir
- **Vegetal**: combinar fontes (ervilha + arroz) para perfil completo
````
:::{admonition} 🔵 Prático — Quando usar proteína em pó
:class: eph-box eph-box--pratico
Use proteína em pó se:
- Você não consegue atingir a meta de proteína com comida.
- Precisa de conveniência (pós-treino rápido, manhã corrida).
- Quer uma opção barata e rápida.
Não é “obrigatório”. Se você come bem, não precisa.
:::
### 5.5.3 Suplementos com evidência moderada
- **Citrulina**: pode melhorar performance em alta repetição (6–8g antes do treino)
- **Bicarbonato de sódio**: tampão extracelular (0.2–0.3 g/kg) — cuidado gastrointestinal
- **Vitamina D**: se deficiente (comum em quem não toma sol)
- **Ômega-3**: se não consome peixe suficiente
:::{admonition} 🔵 Prático — Ômega-3 para leigos
:class: eph-box eph-box--pratico
- **Fontes**: peixes gordos (salmão, sardinha, cavala) 2–3x/semana.
- **Suplemento**: 1–3g de EPA+DHA por dia.
- **Benefícios**: ajuda a controlar inflamação, pode melhorar recuperação e humor.
- **Como saber se precisa**: se você não come peixe ou tem pouca gordura boa na dieta.
:::
### 5.5.4 Suplementos com pouca ou nenhuma evidência
- BCAAs (se proteína diária é adequada, são redundantes)
- Glutamina (não melhora performance em pessoas saudáveis)
- Maioria dos "pré-treinos" além de cafeína
- Boosters de testosterona "naturais"
:::{admonition} 🟡 Aviso — O que evitar
:class: eph-box eph-box--aviso
Evite suplementos que prometem:
- “Aumentar testosterona naturalmente” (sem evidência sólida).
- “Queimar gordura” sem mudar dieta.
- “Aumentar massa” sem treino.
Esses são marketing, não ciência. O que funciona é treino + nutrição + tempo.
:::
---
## 🚫 O Glossário "Anti-Bullshit" (O que ignorar)
Não gaste energia mental ou dinheiro com isso antes de ajustar o básico:
| Mito | Realidade |
|------|-----------|
| Água com limão em jejum | Ótimo para vitamina C, irrelevante para queimar gordura. |
| Janela Anabólica (30min) | A janela dura 24–48h. Coma quando puder. |
| BCAA isolado | Se você come proteína suficiente (carne/ovo/whey), BCAA é redundante. |
| Comer de 3 em 3 horas | O total do dia importa mais que a frequência. |
| Glutamina (para músculo) | Ótima para o intestino, inútil para hipertrofia em saudáveis. |
---
## 5.6 Estratégias para diferentes objetivos
### 5.6.1 Hipertrofia / Bulk
- Superávit leve (+200–500 kcal)
- Proteína: 1.6–2.2 g/kg
- Carboidrato: suficiente para sustentar treino intenso
- Progressão de peso corporal: 0.25–0.5 kg/semana
:::{admonition} 🔵 Prático — Bulk sem engordar muito
:class: eph-box eph-box--pratico
- **Superávit leve**: +200–500 kcal (não +1000).
- **Proteína alta**: 1.6–2.2 g/kg.
- **Monitore peso**: se subir rápido (>1 kg/semana), reduza calorias.
- **Treino**: continue progressivo; não use “bulk” como desculpa para treinar mal.
:::
### 5.6.2 Perda de gordura / Cut
- Déficit moderado (−300–700 kcal)
- Proteína: 2.0–2.4 g/kg (prioridade máxima)
- Treino de força mantido (preserva massa)
- Progressão de perda: 0.5–1% do peso/semana
:::{admonition} 🔵 Prático — Cut sem perder força
:class: eph-box eph-box--pratico
- **Déficit moderado**: −300–700 kcal (não −1000).
- **Proteína máxima**: 2.0–2.4 g/kg.
- **Treino de força**: mantenha volume e intensidade o máximo possível.
- **Paciência**: perda rápida = perda de músculo.
:::
### 5.6.3 Recomposição
- Manutenção ou leve déficit
- Proteína alta
- Treino bem dosado
- Expectativa: mais lento, mas sustentável
:::{admonition} 🔵 Prático — Recomposição (avançado)
:class: eph-box eph-box--pratico
Recomposição é difícil. Funciona melhor se:
- Você já treina há 1+ anos.
- Seu peso não está muito longe do ideal.
- Você tolera mudanças lentas.
Estratégia: mantenha peso, foque em proteína alta e treino consistente. Espere mudanças pequenas ao longo de meses.
:::
### 5.6.4 A Estratégia "Gaintaining" (O Santo Graal do Natural)
Ao contrário do "Bulking Sujo" (ganhar peso a qualquer custo) ou "Cutting Agressivo" (passar fome), o Gaintaining busca a manutenção calórica ou um superávit minúsculo (ex: +100kcal).
**O Objetivo:** Manter o peso corporal estável enquanto as medidas de cintura diminuem e as de tórax/braço/coxa aumentam.
**Para quem é:** Intermediários que já saíram da fase de "iniciante magro" e querem definição sem perder volume.
**A Métrica:** O espelho e a fita métrica importam mais que a balança. Se o peso está igual mas o cinto apertou um furo a menos, você está ganhando músculo e queimando gordura simultaneamente.
---
## 🟢 Resumo do Módulo 5 (em 10 linhas)
1. Nutrição é combustível e matéria-prima para adaptações.
2. Calorias determinam ganho/perda de peso; macros determinam qualidade.
3. Proteína constrói músculo; carboidrato energiza treinos; gordura regula hormônios.
4. Timing não é mágico, mas consistência diária é fundamental.
5. Balanço energético é a base de qualquer objetivo nutricional.
6. Suplementos complementam, não substituem boa alimentação.
7. Creatina e cafeína têm evidência sólida; a maioria é marketing.
8. Gaintaining permite ganhar músculo e perder gordura simultaneamente.
9. Ignore mitos como "janela anabólica 30min" e BCAA isolado.
10. Hidratação e monitoramento conectam nutrição ao plano de treino.
---
````{dropdown} 🟣 Evidências do Módulo 5
:class-container: quote eph-box eph-box--evidencia
- Morton RW, et al. *A systematic review, meta-analysis and meta-regression of the effect of protein supplementation on resistance training-induced gains in muscle mass and strength*.
- **PMID:** [28698222](https://pubmed.ncbi.nlm.nih.gov/28698222/)
- Kerksick CM, et al. *ISSN exercise & sports nutrition review update: research & recommendations*.
- **PMID:** [30068354](https://pubmed.ncbi.nlm.nih.gov/30068354/)
- Kreider RB, et al. *International Society of Sports Nutrition position stand: safety and efficacy of creatine supplementation*.
- **PMID:** [28615996](https://pubmed.ncbi.nlm.nih.gov/28615996/)
- Guest NS, et al. *International society of sports nutrition position stand: caffeine and exercise performance*.
- **PMID:** [33388079](https://pubmed.ncbi.nlm.nih.gov/33388079/)
````
← **Anterior:** [Módulo 4 — Prescrição de Treino](04-modulo4.md)
Módulo 5 de 8
**Próximo:** [Módulo 6 — Auditoria e Monitoramento](06-modulo6.md) →