Sei que o exercício nem pede isso, mas tentei mostrar mais detalhadamente a faixa do IMC e incluir mais validações.
def calcular_imc(peso: float, altura: float):
if altura <= 0 or peso <= 0:
return None
return peso / (altura ** 2)
def obter_classificacao_imc(imc: float):
if imc < 18.5:
return 'Você está abaixo do peso.'
elif imc < 25.0:
return 'Você está com o peso normal.'
elif imc < 30.0:
return 'Você está com sobrepeso.'
elif imc < 35.0:
return 'Você está com obesidade grau I.'
elif imc < 40.0:
return 'Você está com obesidade grau II.'
else:
return 'Você está com obesidade grau III.'
def main():
try:
peso_usuario = float(input('Digite seu peso (kg): '))
altura_usuario = float(input('Digite sua altura (m): '))
imc_calculado = calcular_imc(peso_usuario, altura_usuario)
if imc_calculado is not None:
classificacao = obter_classificacao_imc(imc_calculado)
print(f'Seu IMC é: {imc_calculado:.2f}')
print(classificacao)
else:
print('Erro: Peso e altura devem ser valores positivos.')
except ValueError:
print('Erro: Por favor, insira apenas valores numéricos para peso e altura.')
if __name__ == '__main__':
main()