Boa tarde Moises! Tudo bem?
Seu código está ótimo! Parabéns! Dá para ver que já está se preocupando em organizar seu código através de funções que abstraem lógica. Muito bom.
Se me permitir uma dica, as funções na programação são associadas a AÇÕES. Logo, é de boa prática que as funções contenham seus nomes no infinitivo e sempre com alguma ação, até para melhor clareza. Por exemplo: uma função gorjeta
pode se referir a inúmeras coisas. O que ele faz? Calcula gorjeta? Aumenta a gorjeta? Não consigo entender apenas pelo nome. Talvez CalcularGorjeta
seja mais intuitivo e mantém boas práticas de desenvolvimento que serão muito valorizadas!
Exemplo:
def calcular_gorjeta(valor, percentual):
return valor * percentual
def calcular_total_da_conta(valor, gorjeta):
return valor + gorjeta
def main():
try:
print('+' * 40, 'FECHAMENTO DE CONTA' , '+' * 40 )
valor = float(input('Digite o valor do consumo: '))
percentual = float(input('Digite o percentual de gorjeta:')) / 100
valor_gorjeta = calcular_gorjeta(valor, percentual)
total_pagar = calcular_total_da_conta(valor, valor_gorjeta)
print(f'\nO valor da gorjeta é: R$ {valor_gorjeta:.2f}.')
print(f'O total a pagar é: R$ {total_pagar:.2f}.')
except ValueError:
print('Atenção: Digite apenas números.')
main()
except NameError:
print('\nTente novamente.')
main()
try:
main()
finally:
print('\nEm caso de dúvidas, procure pelo gerente.')
Isso deixa seu código mais legível e mais elegante além de mostrar pros recrutadores que você se importa com qualidade de leitura e manutenção do código!