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.

  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.

🔴 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

  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

🔴 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

  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: 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:

  1. Calorias adequadas ao objetivo

  2. Macros bem distribuídos

  3. Micronutrientes (variedade de alimentos)

  4. Timing razoável

  5. 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)

  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.


🟣 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.

  • Kerksick CM, et al. ISSN exercise & sports nutrition review update: research & recommendations.

  • Kreider RB, et al. International Society of Sports Nutrition position stand: safety and efficacy of creatine supplementation.

  • Guest NS, et al. International society of sports nutrition position stand: caffeine and exercise performance.