1
resposta

07 Calculando o IMC

Como eu fiz:

Recebe os dados do usuário (usando float para permitir números decimais)

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 do peso com base no resultado

if imc < 18.5:
print("Você está abaixo do peso.")
elif 18.5 <= imc < 25:
print("Você está com o peso normal.")
else:
print("Você está acima do peso.")

1 resposta

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!