Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

[Projeto] Calculando o IMC

def ler_valor(mensagem, minimo, maximo):
    while True:
        try:
            valor = float(input(mensagem))

            if valor < minimo or valor > maximo:
                print(f"Valor inválido. Digite um valor entre {minimo} e {maximo}.")
            else:
                return valor

        except ValueError:
            print("Entrada inválida. Digite apenas números.")


peso = ler_valor("Digite o peso em kg: ", 1, 600)
altura = ler_valor("Digite a altura em metros: ", 0.30, 2.50)

imc = peso / (altura ** 2)

print(f"\nIMC: {imc:.2f}")

if imc < 18.5:
    print("Classificação: Abaixo do peso")
elif imc < 25:
    print("Classificação: Peso normal")
else:
    print("Classificação: Acima do peso")
1 resposta

Oi, Cássio, como vai?

Obrigado por compartilhar sua solução. Seu código atende aos requisitos da atividade, realizando corretamente o cálculo do IMC e a classificação conforme as faixas definidas no enunciado.

Além disso, você foi além do que era solicitado ao criar uma função para validação das entradas e tratar possíveis erros com try e except. Isso torna a aplicação mais robusta e melhora a experiência de quem utiliza o programa. As verificações de faixa para peso e altura também ajudam a evitar valores inconsistentes.

Pensando em uma próxima evolução do projeto, como você organizaria o código para incluir outras classificações de IMC?

Parabéns pela resolução e pela iniciativa de adicionar validações extras. Continue compartilhando seus projetos, o fórum está à disposição para acompanhar sua evolução.

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