1
resposta

Calculando a gorjeta em um restaurante


```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('Pressione "ENTER" para retornar ao início!')


        except ValueError:

            print('Você não digitou um valor válido!')
            input('Pressione "ENTER" para retornar ao início!')
           

calculadora_de_gorjeta()
1 resposta

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!