Olá, Cauan. Como vai?
Parabéns pela solução do desafio! Você fez uma excelente escolha ao agrupar e organizar a lógica do cálculo do IMC dentro de uma função. Essa é uma das principais boas práticas na programação, pois torna o código reutilizável, limpo e muito mais fácil de manter.
O uso da estrutura condicional if, elif e else ficou perfeito para separar as faixas de peso, e a formatação das casas decimais com {imc:.2f} garantiu que o resultado na tela fique legível para o usuário.
Para complementar o seu aprendizado e agregar ainda mais valor ao seu código, existem duas boas práticas de desenvolvimento em Python que podem deixar a sua função ainda mais profissional:
- Separação de responsabilidades (Retorno de valores): No mundo real, funções geralmente realizam o cálculo e retornam o resultado (usando a palavra-chave
return) em vez de exibir o texto diretamente com o print. Isso permite que o resultado seja usado depois para salvar em um banco de dados, enviar por e-mail ou mostrar na tela de diferentes formas. - Tratamento de strings: Uma pequena dica de digitação apenas para o texto ficar impecável, corrigindo a palavra "abixo" para "abaixo".
Veja uma sugestão de como seu código poderia ser estruturado aplicando o conceito de retorno de valor:
def calcula_imc(peso, altura):
imc_calculado = peso / (altura ** 2)
if imc_calculado < 18.5:
return f'IMC de {imc_calculado:.2f}: Você está abaixo do peso, MELHOR COMER MAIS'
elif 18.5 <= imc_calculado < 25:
return f'IMC de {imc_calculado:.2f}: Você está muito bem, VERY GOOD'
else:
return f'IMC de {imc_calculado:.2f}: Acima do peso, Obeso cuidado'
# Coleta de dados do usuário
peso = float(input('Digite seu peso: '))
altura = float(input('Digite a sua altura: '))
# Chamando a função e exibindo o resultado retornado por ela
resultado = calcula_imc(peso, altura)
print(resultado)
Dessa forma, a função calcula_imc fica responsável puramente pela lógica do negócio, e o controle de como exibir isso para o usuário fica fora dela.
Continue praticando essa mentalidade de componentizar o código em funções, isso fará toda a diferença nos seus próximos projetos!
Espero que possa ter lhe ajudado!