1
resposta

Calculando o IMC

def titulo(txt):
    print('=' * len(txt))
    print(txt)
    print('=' * len(txt))

def coleta_de_dados():
    peso = float(input('Informe o seu peso (kg): '))
    altura = float(input('Digite a sua altura (m): '))
    return peso, altura

def calculo_IMC(peso, altura):
    IMC = peso / (altura ** 2)
    return IMC

def analise_IMC(IMC):
    if IMC < 18.5:
        print('Você está abaixo do peso')
    elif 18.5 <= IMC < 25:
        print('Seu peso está normal')
    else: 
        print('Você está acima do peso')

def main():
    titulo('CALCULANDO O IMC')
    peso, altura = coleta_de_dados()
    IMC = calculo_IMC(peso, altura)
    print(f'Seu IMC é: {IMC:.2f}')
    analise_IMC(IMC)


if __name__ == '__main__':
    main()Calculando o IMC
1 resposta

Olá, Giovanni. Como vai?

Seu projeto para o cálculo do IMC é um exemplo excepcional de modularização e organização de código. Você não apenas resolveu o problema lógico, mas estruturou o script de uma forma que facilita muito a leitura e futuras manutenções.

Aqui estão os pontos que tornam seu código digno de destaque:

  • Separação de Responsabilidades: Você dividiu o programa em funções específicas: uma para estética (titulo), uma para entrada de dados (coleta_de_dados), uma para o processamento matemático (calculo_IMC) e outra para a lógica de decisão (analise_IMC).
  • Uso da Função main(): O uso da estrutura if __name__ == '__main__': é uma prática profissional em Python. Ela garante que o código só seja executado se o arquivo for rodado diretamente, e não quando for importado por outro script como um módulo.
  • Formatação e Legibilidade: A função titulo que se ajusta ao tamanho do texto ('=' * len(txt)) e a formatação do resultado final com :.2f demonstram um cuidado especial com a interface e a apresentação dos dados.
  • Lógica de Intervalos: No Python, a sintaxe 18.5 <= IMC < 25 é muito limpa e eficiente, permitindo verificar dois limites em uma única expressão, o que você aplicou perfeitamente.

Para deixar seu projeto ainda mais completo, você poderia expandir a função analise_IMC para incluir as categorias de Sobrepeso, Obesidade I, II e III, seguindo a tabela oficial da OMS. Isso enriqueceria a utilidade da sua ferramenta!

Sua base em lógica e organização de funções está muito sólida. Parabéns pelo excelente trabalho!

Espero que possa ter lhe ajudado!