criei uma treinando tratamento de exceções e erros além de encapsular a conta em uma função

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!
criei uma treinando tratamento de exceções e erros além de encapsular a conta em uma função

Olá, Natanael! Como vai?
Parece que você está no caminho certo com a sua calculadora de gorjeta. Vou destacar alguns pontos do seu código que estão bem legais e algumas sugestões de melhoria:
Função calcular_gorjeta:
Tratamento de exceções:
try e except para capturar erros de entrada, o que é ótimo para evitar que o programa quebre com entradas inválidas.Validações:
Sugestões:
Aqui está uma pequena modificação na parte de impressão para formatar a gorjeta:
print(f'Valor da gorjeta: R$ {valor_gorjeta:.2f}')
print(f'Total a pagar: R$ {total:.2f}')
Espero ter ajudado e bons estudos!