1
resposta

CALCULANDO O IMC

Prezados(as),
Boa Tarde,
Segue a implementação para o exercício: Calculando o IMC

# AREA DE VARIÁVEIS

peso = float(input("Informe o peso em kg: "))
altura = float(input("Informe a altura em metros: "))

# PROCESSAMENTO E SAÍDA

print("\n--CÁLCULO DE IMC ----------------------------------")
if peso <= 0 or altura <= 0:
  print("Erro: Peso e altura devem ser valores positivos.")
else:
  imc = peso / (altura ** 2)
  print(f"Seu IMC é: {imc:.2f}")

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

Olá, Luiz Fernando. Como vai?

Sua implementação para o cálculo do IMC ficou excelente! Você estruturou o código de forma muito limpa e organizada, separando bem a entrada de variáveis, o processamento e a saída de dados.

Um ponto altíssimo do seu código, que demonstra uma ótima maturidade como desenvolvedor, foi a validação inicial (if peso <= 0 or altura <= 0:). Tratar dados de entrada para evitar erros matemáticos (como a divisão por zero) ou absurdos no mundo real é uma excelente prática de programação que previne bugs no sistema.

A formatação da saída com {imc:.2f} também foi perfeita para exibir o resultado com apenas duas casas decimais.

Para complementar o seu aprendizado e enriquecer o debate sobre as estruturas condicionais no fórum, preparei duas dicas sobre simplificação de lógica e legibilidade de código.

1. Otimização das Condições Combinadas

No seu bloco de classificação do IMC, você usou a seguinte linha:
elif 18.5 <= imc < 25:

Essa sintaxe funciona perfeitamente no Python (que aceita operadores encadeados). Mas, do ponto de vista do fluxo de execução do programa, você pode simplificar essa linha.

Como o Python lê o código de cima para baixo, se o programa chegou até o elif, significa que ele já testou a condição anterior (imc < 18.5) e ela deu falsa. Ou seja, o Python já sabe, por garantia, que o imc é maior ou igual a 18.5.

Portanto, você pode escrever apenas:
elif imc < 25:

O seu código ganha em legibilidade e o interpretador do Python faz uma validação a menos.

2. Expandindo as Classificações (Desafio)

A atividade propõe uma versão resumida com "Acima do peso" para simplificar o exercício de lógica. No entanto, na tabela real da Organização Mundial da Saúde (OMS), a categoria "Acima do peso" se divide em Sobrepeso e vários graus de Obesidade.

Caso queira treinar ainda mais o uso do elif para expandir o seu projeto de TI, veja como ficaria a tabela completa integrada ao seu código:

  if imc < 18.5:
    print("Classificação: Abaixo do peso")
  elif imc < 25:
    print("Classificação: Peso normal")
  elif imc < 30:
    print("Classificação: Sobrepeso")
  elif imc < 35:
    print("Classificação: Obesidade Grau I")
  elif imc < 40:
    print("Classificação: Obesidade Grau II")
  else:
    print("Classificação: Obesidade Grau III (Mórbida)")

Note como a estrutura encadeada de cima para baixo (testando sempre o limite menor) deixa o código limpo, sem a necessidade de usar o operador and em nenhuma das linhas.

Parabéns pelo capricho no visual do terminal e pela atenção dada à validação dos dados! Continue praticando.

Espero que possa ter lhe ajudado!