Calculadora de Gorjetas em Python: Guia Completo (CLI e GUI)

Foto do autor

By luis

Criando uma Calculadora de Gorjetas e Divisão em Python

Este artigo detalha o processo de construção de uma calculadora de gorjetas e divisão utilizando a linguagem de programação Python. Este projeto prático é excelente para quem deseja aprimorar suas habilidades em Python. Exploraremos duas abordagens distintas: primeiramente, implementaremos a calculadora como uma ferramenta de linha de comando e, posteriormente, como uma aplicação com Interface Gráfica de Usuário (GUI).

Pré-visualização

O desenvolvimento do aplicativo será abordado de duas maneiras. Inicialmente, criaremos um script Python simples, capaz de interagir com o usuário através do terminal, solicitando informações e exibindo os resultados. Na segunda fase, construiremos uma Interface Gráfica do Usuário, utilizando a biblioteca Tkinter, para uma experiência mais visual e interativa.

Especificação do Programa

A calculadora receberá três dados como entrada:

  • O valor total da conta.
  • A porcentagem da gorjeta a ser aplicada.
  • O número de pessoas que dividirão a conta.

Com base nesses dados, o programa calculará e apresentará:

  • O valor da contribuição de cada pessoa referente à conta.
  • O valor da contribuição de cada pessoa referente à gorjeta.
  • O valor total que cada pessoa deverá pagar (conta + gorjeta).

Algoritmo

O funcionamento da calculadora seguirá um algoritmo simples e direto:

  1. Obtenha as entradas: valor da conta (bill_amount), porcentagem da gorjeta (tip_percentage) e número de pessoas (number_of_people).
  2. Calcule o valor total da gorjeta: bill_amount * tip_percentage / 100.
  3. Calcule a contribuição de cada pessoa para a conta: bill_amount / number_of_people.
  4. Calcule a contribuição de cada pessoa para a gorjeta: valor_da_gorjeta / number_of_people.
  5. Calcule o valor total a ser pago por pessoa somando a contribuição da conta e da gorjeta.

Pré-requisitos

Para acompanhar este tutorial, é necessário possuir conhecimentos básicos da linguagem de programação Python, incluindo funções e classes. Além disso, o Python deve estar instalado em seu sistema. Caso não esteja, visite o site oficial do Python para realizar o download e a instalação. Uma alternativa é utilizar o compilador Python online disponível em etechpt.com, que permite executar código Python diretamente no navegador.

Calculadora via Linha de Comando

Criação da Pasta de Projeto

Inicialmente, crie uma pasta vazia em seu computador para organizar os arquivos do projeto. No sistema Ubuntu 22.04, por exemplo, você pode usar o terminal com os seguintes comandos:

mkdir calculadora-gorjeta-divisao && cd calculadora-gorjeta-divisao

Criação do Arquivo Python

Em seguida, crie o arquivo onde o código Python será escrito. Utilize o comando:

touch main.py

Abertura do Arquivo com Editor de Código

Abra o arquivo com seu editor de código preferido. Para fins de demonstração, utilizaremos o editor nano, que é baseado em terminal:

nano main.py

Recebimento de Dados de Entrada

Adicione as seguintes linhas ao início do arquivo para receber e formatar os dados de entrada:

# Recebendo o valor da conta como um número de ponto flutuante
bill_amount = float(input("Valor da conta: "))

# Recebendo a porcentagem da gorjeta como um número de ponto flutuante
tip_percentage = float(input("Porcentagem da gorjeta: "))

# Recebendo o número de pessoas como um número inteiro
number_of_people = int(input("Número de pessoas: "))
  

Essas linhas garantem que os valores fornecidos pelo usuário sejam convertidos para os tipos numéricos apropriados.

Cálculo da Gorjeta

Calcule o valor total da gorjeta multiplicando a porcentagem pelo valor da conta:

tip_amount = bill_amount * tip_percentage / 100

Cálculo da Contribuição Individual

Divida o valor da conta e o valor da gorjeta pelo número de pessoas para obter a contribuição individual de cada um:

# Calculando a contribuição de cada pessoa para a conta
bill_contribution = bill_amount / number_of_people

# Calculando a contribuição de cada pessoa para a gorjeta
tip_contribution = tip_amount / number_of_people
  

Cálculo da Contribuição Total

Some as contribuições individuais para obter o valor total que cada pessoa deverá pagar:

total_contribution = bill_contribution + tip_contribution

Apresentação dos Resultados

Exiba os resultados para o usuário:

# Apresentando os resultados
print("Contribuição da conta por pessoa: ", bill_contribution)
print("Contribuição da gorjeta por pessoa: ", tip_contribution)
print("Total por pessoa: ", total_contribution)
  

Teste da Calculadora

O arquivo completo deverá ser similar a este:

# Recebendo o valor da conta como um número de ponto flutuante
bill_amount = float(input("Valor da conta: "))

# Recebendo a porcentagem da gorjeta como um número de ponto flutuante
tip_percentage = float(input("Porcentagem da gorjeta: "))

# Recebendo o número de pessoas como um número inteiro
number_of_people = int(input("Número de pessoas: "))

tip_amount = bill_amount * tip_percentage / 100

# Calculando a contribuição de cada pessoa para a conta
bill_contribution = bill_amount / number_of_people

# Calculando a contribuição de cada pessoa para a gorjeta
tip_contribution = tip_amount / number_of_people

total_contribution = bill_contribution + tip_contribution

# Apresentando os resultados
print("Contribuição da conta por pessoa: ", bill_contribution)
print("Contribuição da gorjeta por pessoa: ", tip_contribution)
print("Total por pessoa: ", total_contribution)
  

Execute o script usando o comando:

python3 main.py

Calculadora com Interface Gráfica (GUI)

Nesta seção, criaremos a mesma calculadora, mas com uma interface gráfica. Usaremos a biblioteca Tkinter para construir a GUI.

Configuração

Tkinter faz parte da biblioteca padrão do Python, o que significa que ele já está instalado junto com o Python. Contudo, em sistemas Linux, o Tkinter pode não vir pré-instalado para economizar espaço. Portanto, pode ser necessário instalá-lo manualmente:

sudo apt-get install python3-tk

Criação do Arquivo do Projeto

Crie um arquivo para o código da interface gráfica:

touch gui.py

Importando o Tkinter

Importe a biblioteca Tkinter no início do arquivo:

import tkinter as tk

Criação da Interface

Comece a criar os elementos da interface gráfica:

# Criando a janela
window = tk.Tk()

# Criando o título da janela
tk.Label(text="Calculadora de Gorjetas e Divisão").pack()

# Criando o campo de entrada para o valor da conta
tk.Label(text="Insira o valor da conta").pack()
ent_bill = tk.Entry(width=40)
ent_bill.pack()

# Criando o campo de entrada para a porcentagem da gorjeta
tk.Label(text="Insira a porcentagem da gorjeta").pack()
ent_tip = tk.Entry(width=40)
ent_tip.pack()

# Criando o campo de entrada para o número de pessoas
tk.Label(text="Insira o número de pessoas").pack()
ent_people = tk.Entry(width=40)
ent_people.pack()

# Criando o botão "Calcular"
btn_enter = tk.Button(text="Calcular")
    

Este código cria a janela principal, rótulos informativos e os campos de entrada para o usuário inserir os dados, além do botão para iniciar o cálculo.

Função para o Cálculo

Crie uma função que será executada quando o botão for clicado. Esta função obterá os valores dos campos de entrada, realizará os cálculos e exibirá o resultado na janela:

def handle_click(event):
    # Obtendo os valores dos campos de entrada e convertendo para o tipo numérico correto
    bill_amount = float(ent_bill.get())
    tip_percentage = float(ent_tip.get())
    number_of_people = int(ent_people.get())

    # Calculando o valor total da gorjeta
    tip_amount = bill_amount * tip_percentage / 100
    
    # Calculando a contribuição de cada pessoa para a conta
    bill_contribution = bill_amount / number_of_people
    
    # Calculando a contribuição de cada pessoa para a gorjeta
    tip_contribution = tip_amount / number_of_people
    
    # Calculando o valor total por pessoa
    total_contribution = bill_contribution + tip_contribution
    
    # Criando a string com o resultado
    output = f'Conta por pessoa: {bill_contribution} \n Gorjeta por pessoa: {tip_contribution} \n Total por pessoa: {total_contribution}'
    
    # Criando um rótulo para exibir o resultado
    tk.Label(text=output).pack()
    
    # Atualizando a janela para mostrar as alterações
    window.update()
    

Vinculando a Função ao Botão

Vincule a função handle_click ao evento de clique do botão:

btn_enter.bind('<Button-1>', handle_click)
btn_enter.pack()
  

Finalmente, adicione o loop principal da janela para que ela continue em execução:

window.mainloop()

Testando a Calculadora GUI

Execute o script com o comando:

python3 gui.py

A janela da calculadora deverá abrir:

Você pode inserir os valores e testar a calculadora:

Considerações Finais

Neste tutorial, criamos uma calculadora de gorjetas e divisão de duas formas distintas. A primeira, utilizando uma interface de linha de comando, e a segunda, com uma interface gráfica construída com Tkinter. Este tutorial demonstra como construir um projeto simples em Python, sendo um excelente ponto de partida para aprimorar suas habilidades na linguagem. Se você deseja aprofundar seus conhecimentos, considere explorar cursos online como o oferecido pelo Datacamp.

Para continuar aprendendo, você pode consultar outros tutoriais, como um guia para criar um gerador de senhas aleatórias em Python.