Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Reslução ultilizando função (agrupando e organizando o código


def imc(peso, altura):
    # IMC = peso / (altura ** 2)

    imc = peso / (altura ** 2)

    if imc < 18.5:
        print(f'IMC de {imc:.2f} Você está abixo do peso, MELHOR COMER MAIS')
    elif 18.5 <= imc < 25:
        print(f'IMC de {imc:.2f} Você está muito bem VERY GOOD')
    else:
        print(f'IMC de {imc:.2f} Acima do peso , Obeso cuidado')

peso = float(input('Digite seu peso : '))
altura = float(input('Digite a sua alutra : '))

imc(peso, altura)
1 resposta
solução!

Olá, Cauan. Como vai?

Parabéns pela solução do desafio! Você fez uma excelente escolha ao agrupar e organizar a lógica do cálculo do IMC dentro de uma função. Essa é uma das principais boas práticas na programação, pois torna o código reutilizável, limpo e muito mais fácil de manter.

O uso da estrutura condicional if, elif e else ficou perfeito para separar as faixas de peso, e a formatação das casas decimais com {imc:.2f} garantiu que o resultado na tela fique legível para o usuário.

Para complementar o seu aprendizado e agregar ainda mais valor ao seu código, existem duas boas práticas de desenvolvimento em Python que podem deixar a sua função ainda mais profissional:

  • Separação de responsabilidades (Retorno de valores): No mundo real, funções geralmente realizam o cálculo e retornam o resultado (usando a palavra-chave return) em vez de exibir o texto diretamente com o print. Isso permite que o resultado seja usado depois para salvar em um banco de dados, enviar por e-mail ou mostrar na tela de diferentes formas.
  • Tratamento de strings: Uma pequena dica de digitação apenas para o texto ficar impecável, corrigindo a palavra "abixo" para "abaixo".

Veja uma sugestão de como seu código poderia ser estruturado aplicando o conceito de retorno de valor:

def calcula_imc(peso, altura):
    imc_calculado = peso / (altura ** 2)
    
    if imc_calculado < 18.5:
        return f'IMC de {imc_calculado:.2f}: Você está abaixo do peso, MELHOR COMER MAIS'
    elif 18.5 <= imc_calculado < 25:
        return f'IMC de {imc_calculado:.2f}: Você está muito bem, VERY GOOD'
    else:
        return f'IMC de {imc_calculado:.2f}: Acima do peso, Obeso cuidado'

# Coleta de dados do usuário
peso = float(input('Digite seu peso: '))
altura = float(input('Digite a sua altura: '))

# Chamando a função e exibindo o resultado retornado por ela
resultado = calcula_imc(peso, altura)
print(resultado)

Dessa forma, a função calcula_imc fica responsável puramente pela lógica do negócio, e o controle de como exibir isso para o usuário fica fora dela.

Continue praticando essa mentalidade de componentizar o código em funções, isso fará toda a diferença nos seus próximos projetos!

Espero que possa ter lhe ajudado!