Olá, Matheus!
O código ficou muito bom, bem organizado e com a lógica clara.
Gostei muito de como você usou o try-except para lidar com entradas inválidas, tornando o programa mais robusto. A forma como você tratou a porcentagem da gorjeta, permitindo que o campo ficasse vazio e assumindo 0 como padrão, é um ótimo detalhe que melhora a usabilidade.
É um excelente projeto para praticar funções, manipulação de strings e tratamento de exceções. Continue com essa dedicação e aprimorando seus projetos!
Em caso de dúvidas, estou à disposição.
Bons estudos!
Sucesso ✨