Olá, Deivide. Como vai?
Sua resolução ficou excelente! O código está muito bem estruturado, limpo e legível.
Gostaria de destacar dois pontos muito positivos na sua implementação que são ótimas práticas de programação:
- Tipagem correta com
float: Permitir a entrada de números decimais é fundamental para o cálculo do IMC, já que a altura (ex: 1.75) e o peso frequentemente usam casas decimais. - Simplificação das condições com o operador de encadeamento: O seu trecho
18.5 <= imc < 25 é uma funcionalidade fantástica e muito elegante do Python. Em outras linguagens de programação, você seria obrigado a escrever 18.5 <= imc and imc < 25, mas o Python permite essa sintaxe matemática direta, o que deixa o código muito mais natural de ler.
Para aprofundar um pouco mais o seu conhecimento e deixar o seu programa ainda mais completo e alinhado com a tabela oficial da Organização Mundial da Saúde (OMS), você pode expandir os blocos de elif para detalhar as faixas de peso superior, que se dividem em sobrepeso e diferentes graus de obesidade.
Veja como você poderia refatorar a estrutura condicional para abranger esses cenários utilizando a mesma lógica de encadeamento que você já domina:
# Recebe os dados do usuário
peso = float(input("Digite seu peso (kg): "))
altura = float(input("Digite sua altura (m): "))
# Calcula o IMC
imc = peso / (altura ** 2)
# Exibe o valor do IMC formatado com duas casas decimais
print(f"\nSeu IMC é: {imc:.2f}")
# Verifica a categoria detalhada do peso
if imc < 18.5:
print("Classificação: Abaixo do peso.")
elif 18.5 <= imc < 25:
print("Classificação: Peso normal.")
elif 25 <= imc < 30:
print("Classificação: Sobrepeso.")
elif 30 <= imc < 35:
print("Classificação: Obesidade Grau I.")
elif 35 <= imc < 40:
print("Classificação: Obesidade Grau II.")
else:
print("Classificação: Obesidade Grau III (Mórbida).")
Parabéns pela dedicação nos exercícios e pela excelente formatação do código!
Espero que possa ter lhe ajudado!