Olá, Bernard. Como vai?
Parabéns pela excelente estruturação do seu projeto! O seu código foi muito além de uma simples calculadora matemática básica, demonstrando o uso de conceitos avançados e muito maduros de desenvolvimento de software.
Gostaria de destacar três pontos excepcionais na sua solução que mostram que você está pensando como um desenvolvedor de mercado:
- Gerenciamento de Erros com
try/except: Adicionar o bloco de tratamento para ValueError é uma prática brilhante. Se o usuário digitar uma letra ou um caractere inválido por engano, o programa não quebra ("crasha") na tela, exibindo uma mensagem amigável e mantendo o sistema rodando. - Uso da Biblioteca
os: Utilizar os.system('cls' if os.name == 'nt' else 'clear') para limpar o terminal a cada repetição deixa a experiência do usuário (UX) extremamente limpa, profissional e agradável. - Modularização com Funções: Separar a regra de negócio (
calculo_gorjeta) da interface com o usuário (calculadora_de_gorjeta) é a base de um código limpo e fácil de testar.
Para agregar ainda mais valor ao seu projeto e trazer pequenos detalhes de boas práticas do Python para o seu dia a dia, separei duas sugestões de refinamento:
1. Formatação de Código (Estilo PEP 8)
No Python, existe um guia de estilo oficial chamado PEP 8. Ele recomenda que a definição de funções (def) seja separada por duas linhas em branco no escopo principal, e que não fiquem linhas em branco excessivas logo após abrir um laço como o while True:.
Ajustar esses pequenos espaçamentos deixa o seu código mais elegante e alinhado com o padrão internacional de leitura da comunidade.
2. Formatação Visual da Moeda R$
No seu print, você colou o símbolo do Real direto na variável (R${valor_conta:.2f}). Uma boa prática visual e de design no Brasil é adicionar um espaço entre o símbolo e o número, ou seja, R$ {valor_conta:.2f}.
Veja como o seu código fica com os espaçamentos da PEP 8 ajustados e com o visual da moeda polido:
import os
def calculo_gorjeta(porcentagem, conta):
gorjeta = conta * (porcentagem / 100)
return gorjeta
def calculadora_de_gorjeta():
while True:
try:
os.system('cls' if os.name == 'nt' else 'clear')
valor_conta = float(input('Digite o valor total do consumo: '))
porcentagem_gorjeta = float(input('Informe o valor desejável de gorjeta (%) a ser paga: '))
valor_gorjeta = calculo_gorjeta(porcentagem_gorjeta, valor_conta)
total = valor_conta + valor_gorjeta
print('\n==== RESUMO ====\n')
print(f'O valor total de sua conta foi de: R$ {valor_conta:.2f}')
print(f'O valor total de sua gorjeta foi de: R$ {valor_gorjeta:.2f}')
print(f'O total de sua conta + gorjeta é de: R$ {total:.2f}')
input('\nPressione "ENTER" para retornar ao início!')
except ValueError:
print('\nErro: Você não digitou um valor numérico válido!')
input('Pressione "ENTER" para retornar ao início!')
calculadora_de_gorjeta()
Você entregou um script robusto, funcional e muito bem encapsulado. Continue aplicando esse nível de capricho e tratamento de erros nos seus próximos projetos!
Espero que possa ter lhe ajudado!