1
resposta

[Projeto] Mostrando o código

def exibir_nome():
    print('''
    Calculo do IMC
    ''')

def coletar_dados():
    peso = float(input('Digite o seu peso(em kg): '))
    altura = float(input('Digite a sua altura(em metros): '))

    IMC = peso / (altura ** 2 )

    if IMC < 18.5:
        print(f'Você está abaixo do peso, seu IMC é: {IMC:.f2}')
        # o : --> formatar | f --> indica q é float | 2 --> número de casas decimais        
        voltar()
    elif 18.5 <= IMC < 25:
        print(f'Peso normal! seu IMC é {IMC:.2f} ')
        voltar()
    else:
        print(f'Você está acima do peso, seu IMC é {IMC:.2f}')
        voltar()

def voltar():
    input('\ndigite qualquer tecla para executar o codigo novamente')
    main()

def main():
    exibir_nome()
    coletar_dados()

if __name__ == "__main__":
    main()
1 resposta

Olá, João, como vai?

O código apresenta uma estrutura avançada com o uso de funções e recursividade para repetir o processo, o que demonstra uma ótima aplicação de lógica. Houve apenas uma pequena inversão na sintaxe de formatação dentro da primeira condicional if, onde o f e o número de casas decimais foram trocados. Além disso, notei que não há uma definição para encerrar o programa, o que pode causar um erro de limite de recursão caso o código seja executado muitas vezes seguidas pela função voltar.

Ficou muito bom o seu exercício e agradeço por ter compartilhado sua solução. Continue praticando e postando seus avanços. O fórum está à disposição para qualquer dúvida.

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