Black November

ATÉ 50% OFF

TÁ ACABANDO!

0 dias

0 horas

0 min

0 seg

1
resposta

[Minha resolução] Calculando o IMC

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

def peso_altura():

    while True:

        try:
            peso = float(input('Digite seu peso (kg): '))
            altura = float(input('Digite sua altura (m): '))
            
            if peso > 0 and altura > 0:
                return peso, altura

            else:
                print('Coloque um numero positivo!')
        
        except ValueError:
            print('Entrada inválida. Por favor, digite apenas números positivos.')
            
        except Exception as e:
            print(f'Ocorreu um erro inesperado: {e}')

dados = peso_altura()
peso = dados[0]
altura = dados[1]

imc = calcular_imc(peso, altura)

if imc < 18.5:
    print(f'Você está abaixo do peso. IMC: {imc:.2f}')
elif 18.5 <= imc < 25:
    print(f'Você está com peso normal. IMC: {imc:.2f}')
else:
    print(f'Você está acima do peso. IMC: {imc:.2f}')

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR
1 resposta

Olá, Bruno, como vai?

Seu código cumpre bem a proposta e apresenta uma boa organização. A função que calcula o IMC está clara e o fluxo principal do programa funciona sem problemas, conduzindo o usuário até o resultado final de forma natural.

Há apenas um ponto que vale ajustar: na verificação if peso and altura > 0, apenas a altura está sendo comparada corretamente. O Python interpreta essa expressão como if peso and (altura > 0), o que permite que valores não positivos para o peso passem sem bloqueio. Uma forma mais adequada seria usar if peso > 0 and altura > 0. Com isso, você garante que ambos os valores sejam positivos antes de seguir.

Continue enviando seus exercícios, pois isso ajuda bastante no aprendizado. O fórum está à disposição.

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