Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

Goreta!

def fechar_conta():
    try:
        total = float(input("Digite o valor total da conta: "))
        total = round(total,2)

        gorjeta = float(input("Digite a porcentagem de gorjeta que deseja pagar, sugerimos o padrão de 10%: "))
        gorjeta = round(gorjeta,2)

        valo_gorjeta = round(total*(gorjeta/100),2)
        valor_total = round((valo_gorjeta + total),2)
        
        print("--------------------------------------")
        print(f"O valor da sua conta é R${total}")
        print(f"O valor da gorjeta de %{gorjeta} é R${valo_gorjeta}")
        print (f"Seu valor total da conta a ser paga é R${valor_total}")
        print("--------------------------------------")

    except NameError:
        input("Valores invalidos favor tentar novamente!")
        fechar_conta()

fechar_conta()
1 resposta

Oi, Pedro, tudo certo?

O seu código está bem organizado e realiza o cálculo da gorjeta e do valor total corretamente. Uma única atenção importante está no tratamento da exceção. Você está capturando apenas a exceção do tipo NameError, que ocorre quando uma variável não é reconhecida. No contexto da entrada de dados do usuário, o erro mais comum provavelmente será um ValueError, caso o usuário insira um valor que não pode ser convertido para float. Então, seria interessante ampliar o except para capturar ValueError também, garantindo que o programa lide melhor com entradas inváidas. Além disso, a utilização da recursão para repetir a função em caso de erro funciona, mas pode ser substituída por um loop para evitar possíveis problemas em execuções muito longas.

Você já pensou em como poderia tornar sua função mais flexível para diferentes formatos de entrada, como aceitar valores separados por vírgulas ou símbolos de moeda? Como isso impactaria a experiência do usuário e o tratamento dos dados?

Parabéns pelo esforço, Pedro. O fórum está à disposição para ajudar sempre que precisar.

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