1
resposta

[Projeto] Minha resposta

def valida_entrada(mensagem):
    while True:
        try:
            valor = float(input(mensagem))
            if valor > 0:
                return valor
            else:
                print("O valor deve ser maior que zero. Tente novamente.")
        except ValueError:
            print("Entrada inválida. Por favor, digite um número.")


peso = valida_entrada("Digite o seu peso (Kg): ")
altura = valida_entrada("Digite o sua altura (m): ")

def calcula_imc(peso, altura):
    return peso / (altura ** 2)

imc = calcula_imc(peso, altura)

print(f"Seu IMC é: {imc}")

match imc:
    case imc if imc < float(18.5):
         print("Você está abaixo do peso.")
    case imc if imc >= float(18.5) and imc <= float(25):
        print("Você está com o peso normal.")
    case imc if imc > float(25):
        print("Você está acima do peso.")
1 resposta

Olá, Herbert, como vai?

Seu código está muito bem estruturado e funcional. A forma como você separou as responsabilidades em funções, como a valida_entrada e a calcula_imc, demonstra uma boa prática de programação. Isso torna o código mais legível e fácil de manter. A validação de entrada para garantir que o peso e a altura sejam números válidos e maiores que zero é um ponto forte, evitando erros comuns.

Uma sugestão seria modificar a linha de exibição do seu código para formatar o resultado. Uma maneira comum de fazer isso em Python é usando as f-strings, especificando o número de casas decimais após o ponto. Se quisermos exibir o IMC com duas casas decimais, podemos fazer da seguinte maneira:

print(f"Seu IMC é: {imc:.2f}")

Neste exemplo, o : .2f dentro das chaves informa ao Python para formatar a variável imc como um número de ponto flutuante (f) com duas casas decimais (.2).

Continue compartilhando seus projetos. O fórum está aqui para ajudar no que for preciso.

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