1
resposta

Desafio

peso = float(input("Digite seu peso: "))
altura = float(input("Digite sua altura: "))
imc = peso / (altura ** 2)
print(f"Seu IMC é: {imc:.2f}")
if imc < 18.5:
print("Você está abaixo do peso.")
elif imc < 25:
print("Você está com peso normal.")
else:
print("Você está acima do peso.")

1 resposta

Olá, Micael. Como vai?

Parabéns pelo desenvolvimento do código! Você estruturou muito bem a lógica do cálculo do Índice de Massa Corporal (IMC), aplicando corretamente a fórmula matemática com o operador de potência `` e formatando a saída de texto com duas casas decimais através do :.2f.

Assim como no seu desafio anterior, se você tentar rodar esse script diretamente no terminal do Python, ele acusará um erro de indentação (IndentationError). Os comandos print() que estão abaixo de if, elif e else precisam obrigatoriamente de um recuo (quatro espaços ou um Tab) para que o interpretador entenda que eles pertencem àquele bloco condicional.

Aqui está o seu código corrigido com a indentação correta:

peso = float(input("Digite seu peso (em kg): "))
altura = float(input("Digite sua altura (em metros): "))

imc = peso / (altura ** 2)
print(f"Seu IMC é: {imc:.2f}")

# Adicionado o recuo correto nos blocos de código
if imc < 18.5:
    print("Você está abaixo do peso.")
elif imc < 25:
    print("Você está com peso normal.")
else:
    print("Você está acima do peso.")

Agregando Valor: Expandindo as Condicionais

Para tornar o seu projeto ainda mais completo e próximo do que a Organização Mundial da Saúde (OMS) adota, você pode expandir os blocos de elif e else para categorizar melhor o que significa estar "acima do peso". No padrão real do mercado de saúde, essa faixa é dividida em Sobrepeso e diferentes graus de Obesidade.

Veja como você pode enriquecer a lógica do seu algoritmo adicionando essas novas faixas de classificação:

if imc < 18.5:
    print("Classificação: Abaixo do peso.")
elif imc < 25:
    print("Classificação: Peso normal.")
elif imc < 30:
    print("Classificação: Sobrepeso.")
elif imc < 35:
    print("Classificação: Obesidade Grau I.")
elif imc < 40:
    print("Classificação: Obesidade Grau II.")
else:
    print("Classificação: Obesidade Grau III (Mórbida).")

Note que o uso sequencial do elif permite que você teste apenas o limite superior de cada faixa (ex: imc < 30), porque o Python só chega naquela linha se a condição anterior (imc < 25) já tiver sido testada e rejeitada. Isso deixa a leitura da lógica muito elegante!

Parabéns por continuar praticando firme com os desafios de estruturas condicionais. Seu raciocínio está ótimo!

Espero que possa ter lhe ajudado!