1
resposta

Calculando o IMC

Anna Júlia está criando um sistema para calcular o Índice de Massa Corporal (IMC) e fornecer recomendações básicas. O programa deve receber o peso e a altura de uma pessoa e exibir o valor do IMC, além de indicar se está abaixo do peso, com peso normal ou acima do peso. Crie um programa que receba o peso (em kg) e a altura (em metros) e calcule o IMC usando a fórmula: IMC = peso / (altura 2) Depois, exiba o valor do IMC e uma mensagem indicando se está abaixo do peso (IMC < 18.5), peso normal (18.5 <= IMC < 25) ou acima do peso (IMC >= 25).

nome = input(f'Digite seu nome: ')

peso = float(input(f'Digite o seu peso (kg): '))
altura = float(input(f'Digite sua altura (m): '))
imc = peso / (altura ** 2)

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

if imc < 18.5:
    print("Você está abaixo do peso.")
elif imc < 25:
    print("Você está com peso normal.")
else:
    print("Você está acima do peso.")

Digite seu nome: Scarlett
Digite o seu peso (kg): 47
Digite sua altura (m): 1.69
Seu IMC é: 16.46
Você está abaixo do peso.
1 resposta

Olá, Andressa. Como vai?

Parabéns pela resolução! Seu código está muito bem estruturado e você aplicou corretamente a fórmula matemática utilizando o operador de potência ``.

Um ponto muito positivo na sua lógica foi a simplificação do elif. Note que você escreveu apenas elif imc < 25:. Isso funciona perfeitamente porque, se o programa chegou nessa linha, ele já testou a condição anterior (imc < 18.5) e descobriu que ela é falsa. Ou seja, o Python já "sabe" implicitamente que o IMC é maior ou igual a 18.5, economizando código e processamento.

Para deixar seu sistema de saúde ainda mais completo, aqui estão duas sugestões interessantes:

  • Tabela de Referência: O IMC possui classificações mais detalhadas (como Sobrepeso, Obesidade I, II e III). Adicionar esses níveis tornaria o programa mais profissional.
  • Validação de Dados: Como o cálculo envolve divisão, é sempre bom garantir que a altura não seja digitada como zero (o que causaria um erro de sistema).

Veja como o código ficaria com a tabela completa da OMS (Organização Mundial da Saúde):

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

if altura > 0:
    imc = peso / (altura ** 2)
    print(f"\n{nome}, seu IMC é: {imc:.2f}")

    if imc < 18.5:
        classificacao = "Abaixo do peso"
    elif imc < 25:
        classificacao = "Peso normal"
    elif imc < 30:
        classificacao = "Sobrepeso"
    elif imc < 35:
        classificacao = "Obesidade Grau I"
    else:
        classificacao = "Obesidade Grau II ou III"
    
    print(f"Classificação: {classificacao}")
else:
    print("Erro: A altura deve ser maior que zero.")

Por que usar o \n no print?

Eu adicionei um \n antes do nome da Scarlett. Esse comando serve para "pular uma linha", o que ajuda a separar visualmente as perguntas do usuário dos resultados finais, deixando o terminal mais organizado.

Continue com esse foco nas condicionais! Elas são a base para criar qualquer algoritmo de tomada de decisão, seja em apps de saúde ou em sistemas financeiros.

Espero que possa ter lhe ajudado!