(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/) ````