1
resposta

[RESPOSTA] Calculando o IMC

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

imc = peso / (altura * altura)

if imc < 18.5:
    print(f"Seu IMC é: {imc}")
    print("Você está abaixo do peso.")
elif imc <= 18.5:
    print(f"Seu IMC é: {imc}")
    print("Seu peso está normal.")
else:
    print(f"Seu IMC é: {imc:.2f}")
    print("Você está acima do peso.")
1 resposta

Oi, David, como vai?

O seu código demonstra uma boa compreensão de como capturar dados do usuário com a função input e realizar operações matemáticas utilizando variáveis do tipo float no Python. Contudo, há uma inconsistência lógica na sua segunda condição estrutural que afeta o resultado esperado para a classificação do índice de massa corporal. Na instrução elif, o operador relacional menor ou igual foi configurado apontando exatamente para o mesmo valor da primeira checagem, o que impede que o programa reconheça a faixa de peso normal de forma correta e faz com que a maioria dos resultados caia diretamente no bloco else.

Para corrigir essa sobreposição e garantir que os intervalos numéricos reflitam a tabela real de saúde, as estruturas condicionais precisam cobrir faixas distintas para cada categoria. Um sistema de classificação por faixas funciona de maneira mais eficiente quando a primeira condição verifica se o valor está abaixo do limite mínimo, a segunda utiliza operadores combinados para avaliar se o número está contido entre o limite inferior e o superior, e as demais tratam os valores que excedem essa normalidade.

Analisando os limites do índice de massa corporal, como você reestruturaria a condição do seu elif utilizando os operadores lógicos para abranger todo esse intervalo corretamente?

Parabéns pelo empenho na construção do script, obrigado por compartilhar o seu código com a comunidade do fórum e lembre-se de que estamos sempre à disposição para acompanhar o seu progresso.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!