Módulo 5: Nutrição e Suplementação#
🟢 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.
🟢 Definição — Caloria (em linguagem simples)
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.
flowchart TD
E["Energia total<br/>(calorias)"] --> B["Balanço energético<br/>(superávit/déficit/manutenção)"]
M["Macronutrientes<br/>(proteína / carboidrato / gordura)"] --> F["Funções específicas<br/>(construção / combustível / hormônios)"]
T["Timing e distribuição<br/>(refeições, pré/pós-treino)"] --> O["Otimização de recuperação e performance"]
B --> R["Resultado<br/>(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
A nutrição para performance se apoia em três pilares: energia total, distribuição de macros e timing estratégico.#
🎥 Vídeo Explicativo — Como calcular macros (PT-BR)
Nível: Iniciante
▶️ Assistir Vídeo: Aprenda a calcular seus macros para qualquer dieta
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
🟢 Definição — Balanço energético (sem complicação)
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.
🟢 Definição — TDEE
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).
🟢 Definição — BMR, TEF, EAT, NEAT (em português simples)
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 |
🔵 Prático — Como estimar seu gasto calórico (TDEE)
Calculadoras online são um bom ponto de partida, mas o ajuste fino vem da prática.
Use uma calculadora (como a do código abaixo) para ter uma estimativa inicial do seu TDEE (Gasto Calórico Total Diário).
Monitore seu peso por 2–3 semanas comendo essa quantidade de calorias.
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.
🔴 Técnico — Código: Calculadora TDEE e Macros
# 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
🔵 Prático — Como usar esta calculadora
Execute o código em um ambiente Python (Jupyter, VS Code, etc.)
Responda às perguntas com seus dados
Use os resultados como ponto de partida
Ajuste após 2-3 semanas baseado no peso real
🔴 Técnico — Código: Planejador Semanal de Refeições
# 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()
🔵 Prático — Como usar o planejador de refeições
Execute o código em um ambiente Python (Jupyter, VS Code, etc.).
Responda às perguntas sobre seus dados, nível de atividade e objetivo.
Escolha suas preferências alimentares (Onívoro, Vegetariano, Vegano).
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: mTOR precisa de aminoácidos (especialmente leucina) para “autorizar” síntese proteica.
🟢 Definição — Aminoácidos (em linguagem simples)
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.
🔵 Prático — Proteína para Longevidade
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) |
🔵 Prático — Proteína para iniciantes (sem contar gramas)
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).
🟢 Definição — Limiar de leucina
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.
🟢 Definição — MPS (já visto, mas reforço)
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.
🔵 Prático — Distribuição de proteína
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
🔵 Prático — Distribuição sem neurose
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.
🟢 Definição — Glicogênio (reserva de carboidrato)
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 |
🔵 Prático — Carboidrato para leigos (sem contar gramas)
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
🔵 Prático — Timing sem exagero
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.
🟡 Aviso — Low-carb e performance
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
🟢 Definição — Gordura (em linguagem simples)
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
🔵 Prático — Gordura sem pesar
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 |
🟢 Definição — Integração com Módulo 6
Os ajustes acima só funcionam se você auditar dados (peso, medidas, RIR, biofeedback). No 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 |
🔵 Prático — Ômega-3
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:
Calorias adequadas ao objetivo
Macros bem distribuídos
Micronutrientes (variedade de alimentos)
Timing razoável
Suplementos (cereja do bolo)
🟢 Definição — Suplemento (o que é e o que não é)
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.
🟡 Aviso — Expectativas realistas
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.
🔵 Prático — Como saber se você precisa de suplemento
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.
🟢 Definição — Creatina
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
🔵 Prático — Como tomar creatina sem complicar
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
🟡 Aviso — Cafeína e sono
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
🔵 Prático — Como lidar com o formigamento
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.
🟢 Definição — Proteína em pó
Proteína em pó é uma forma concentrada de proteína, geralmente feita de leite (whey, caseína) ou fontes vegetais (soja, arroz, ervilha).
🔴 Técnico — Tipos de proteína em pó (whey, caseína e vegetal)
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
🔵 Prático — Quando usar proteína em pó
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
🔵 Prático — Ômega-3 para leigos
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”
🟡 Aviso — O que evitar
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
🔵 Prático — Bulk sem engordar muito
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
🔵 Prático — Cut sem perder força
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
🔵 Prático — Recomposição (avançado)
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)
Nutrição é combustível e matéria-prima para adaptações.
Calorias determinam ganho/perda de peso; macros determinam qualidade.
Proteína constrói músculo; carboidrato energiza treinos; gordura regula hormônios.
Timing não é mágico, mas consistência diária é fundamental.
Balanço energético é a base de qualquer objetivo nutricional.
Suplementos complementam, não substituem boa alimentação.
Creatina e cafeína têm evidência sólida; a maioria é marketing.
Gaintaining permite ganhar músculo e perder gordura simultaneamente.
Ignore mitos como “janela anabólica 30min” e BCAA isolado.
Hidratação e monitoramento conectam nutrição ao plano de treino.
🟣 Evidências do Módulo 5
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
Kerksick CM, et al. ISSN exercise & sports nutrition review update: research & recommendations.
PMID: 30068354
Kreider RB, et al. International Society of Sports Nutrition position stand: safety and efficacy of creatine supplementation.
PMID: 28615996
Guest NS, et al. International society of sports nutrition position stand: caffeine and exercise performance.
PMID: 33388079