Como criar uma calculadora de gorjeta e divisão em Python
Publicados: 2023-01-06Vamos aprender como criar uma calculadora de Tip e Split em Python.
É um ótimo projeto pessoal para construir para praticar suas habilidades em Python. Além disso, este tutorial ensinará como criar o aplicativo de duas maneiras, primeiro como uma ferramenta de linha de comando e depois como uma ferramenta GUI.
Visualização
Vamos construir o aplicativo de duas maneiras. Primeiro, construiremos um script de shell Python simples que solicita uma entrada do usuário e grava a saída.
Em segundo lugar, daremos ao programa uma Interface Gráfica de Usuário usando o Tkinter.
Especificação do programa
O programa recebe três entradas:
- O valor da conta
- A porcentagem de gorjeta
- O número de pessoas que dividem a conta
Usando essas entradas, o programa calculará a seguinte saída:
- A contribuição de cada pessoa para a conta
- Contribuição de cada pessoa para a gorjeta
- A contribuição total de cada pessoa
Algoritmo
Para conseguir isso, a calculadora de gorjeta e divisão seguirá um algoritmo muito simples descrito abaixo:
- Receba as entradas
: bill_amount
,tip_percentage
,number_of_people
- Calcule o
amount
da gorjeta multiplicandobill_amount
*tip_percentage / 100
- Divida
bill_amount
pornumber_of_people
para obter a contribuição de cada pessoa para a conta. - Divida o valor da
tip_amount
pornumber_of_people
para obter a contribuição de cada pessoa para a gorjeta. - Por fim, adicione as contribuições à conta e a gorjeta para obter o valor total a pagar.
Pré-requisitos
Para seguir este tutorial, você deve conhecer e entender a linguagem de programação Python. Para este tutorial, é necessário conhecimento de conceitos básicos, incluindo funções e classes.
Além disso, você deve ter o Python instalado em seu sistema. Se não estiver, acesse o site do Python e faça o download. Como alternativa, o Geekflare possui um compilador Python online onde você pode executar seu código Python no navegador sem nenhuma configuração de ambiente.
Construindo a calculadora com uma interface de linha de comando
Criar uma pasta de projeto
Para começar, navegue até uma pasta vazia em seu sistema. No meu caso, estou usando o Ubuntu 22.04, então crie uma pasta e navegue até ela usando o terminal; Preciso digitar o seguinte comando:
mkdir tip-calculator && cd tip-calculator
Criar o arquivo Python
Em seguida, crie o arquivo de script onde escreveremos o script Python. No meu caso, usarei o comando touch
para fazer isso:
touch main.py
Abra o arquivo de script com seu editor de código favorito
Para começar a escrever o código no script, abra o arquivo com seu editor de código favorito. Vou usar o nano
, que é um editor de texto baseado em terminal.
nano main.py
Receba a entrada
Feito isso, podemos adicionar as seguintes linhas de código ao topo do arquivo:
# Receiving input for bill amount as a floating point number bill_amount = float(input("Bill amount: ")) # Receiving input for the tip percentage as a floating point number tip_percentage = float(input("Tip percentage: ")) # Receiving the input for the number of people as an integer number_of_people = int(input("Number of people: "))
Basicamente, isso recebe a entrada e converte o tipo de dados de cada entrada de uma string para o tipo mais apropriado.
Calcular o valor da gorjeta
Em seguida, calculamos o valor da gorjeta multiplicando a porcentagem da gorjeta pelo valor da conta.
tip_amount = bill_amount * tip_percentage / 100
Divida a conta e a gorjeta para obter a contribuição de cada pessoa para os dois
# Calculating each person's bill contribution bill_contribution = bill_amount / number_of_people # Calculating each person's tip contribution tip_contribution = tip_amount / number_of_people
Calcular a Contribuição Total
Em seguida, some as contribuições individuais para determinar a contribuição total por pessoa.
total_contribution = bill_contribution + tip_contribution
Exibir os resultados
Por fim, envie os resultados para o usuário.
# Displayinnng the results print("Bill contribution per person: ", bill_contribution) print("Tip contribution per person: ", tip_contribution) print("Total contribution per person: ", total_contribution)
Testando a calculadora de gorjetas e divisões
Por fim, seu arquivo de script deve ficar assim:
# Receiving input for bill amount as a floating point number bill_amount = float(input("Bill amount: ")) # Receiving input for the tip percentage as a floating point number tip_percentage = float(input("Tip percentage: ")) # Receiving the input for the number of people as an integer number_of_people = int(input("Number of people: ")) tip_amount = bill_amount * tip_percentage / 100 # Calculating each person's bill contribution bill_contribution = bill_amount / number_of_people # Calculating each person's tip contribution tip_contribution = tip_amount / number_of_people total_contribution = bill_contribution + tip_contribution # Displaying the results print("Bill contribution per person: ", bill_contribution) print("Tip contribution per person: ", tip_contribution) print("Total contribution per person: ", total_contribution)
Neste ponto, sinta-se à vontade para testar seu aplicativo usando o seguinte comando:
python3 main.py
Construindo a Calculadora de Gorjetas e Divisões com GUI
Na próxima parte deste tutorial, implementaremos o mesmo aplicativo, mas com uma interface gráfica do usuário. Para construir a GUI, usaremos um pacote chamado Tkinter.
Configurando
Tkinter é um pacote embutido na biblioteca padrão do Python. Isso significa que ele foi instalado por padrão quando você instalou o Python.
No entanto, em máquinas Linux com Python instalado por padrão, o TKinter não é pré-instalado para economizar espaço. Portanto, você precisa instalá-lo manualmente usando o seguinte comando:
sudo apt-get install python3-tk
Criar um arquivo de projeto
Para começar, crie um arquivo onde o script Python será armazenado. Depois de criar o arquivo, abra-o com o editor de texto de sua preferência.
touch gui.py
Importar Tkinter
Em seguida, importe o pacote Tkinter adicionando a seguinte linha ao topo do arquivo.
import tkinter from tk
Criar a interface do usuário
Então, podemos começar a criar a interface do usuário.
# Creating the window window = tk.Tk() # Creating the Window title tk.Label(text="Tip and Split Calculator").pack() # Create an input field tk.Label(text="Enter bill amount").pack() ent_bill = tk.Entry(width=40) ent_bill.pack() # Create and entry for the tip percentage tk.Label(text="Enter tip percentage").pack() ent_tip = tk.Entry(width=40) ent_tip.pack() # Create an entry for the number of people tk.Label(text="Enter the number of people").pack() ent_people = tk.Entry(width=40) ent_people.pack() # Create the Enter button btn_enter = tk.Button(text="Enter")
O código acima criou uma janela contendo todos os widgets da interface do usuário. Além disso, criou um rótulo que servirá como título da janela.
Em seguida, criou rótulos e campos de entrada para as três entradas: bill_amount
, tip_percentage
e number_of_people
. Por fim, criou um botão que o usuário irá clicar para executar o cálculo.
Crie uma função para calcular as saídas
Depois disso, podemos criar uma função para lidar com o clique do botão Enter. Esta função pegará os valores dos campos de entrada e os usará para calcular as saídas usando o algoritmo mencionado anteriormente. Por fim, ele criará um rótulo para exibir a saída e atualizar a janela.
def handle_click(event): # Collecting the inputs from the entry fields using the get method # Also type casting the inputs from the default string data type bill_amount = float(ent_bill.get()) tip_percentage = float(ent_tip.get()) number_of_people = int(ent_people.get()) # Calcuating the amount to be paid as a tip tip_amount = bill_amount * tip_percentage / 100 # Calculating the bill contribution of each person at the table bill_contribution = bill_amount / number_of_people # Calculating the tip contribution of each person at the table tip_contribution = tip_amount / number_of_people # Calculating the total contribution of each person total_contribution = bill_contribution + tip_contribution # Creating the output string output = f'Bill per person: {bill_contribution} \n Tip per person: {tip_contribution} \n Total per person: {total_contribution}' # Creating a label for the output text tk.Label(text=output).pack() # Updating the window to reflect the UI changes window.update()
O código na função acima foi explicado por meio de comentários explicando cada etapa principal.
Anexando o manipulador de eventos ao botão
Em seguida, vinculamos o manipulador de eventos ao evento de clique do botão. O evento click do botão no Tkinter é representado pela string ' <Button-1>
'. Para vincular o evento ao manipulador de eventos, usamos o método bind do botão. Adicione esta linha de código abaixo da definição da função:
btn_enter.bind('<Button-1>', handle_click) btn_enter.pack()
Por fim, para manter a janela em execução, chamamos o método mainloop
do objeto window
.
window.mainloop()
E terminamos!
Testando a calculadora de gorjetas e divisões
Você pode executar o aplicativo usando o seguinte comando:
python3 gui.py
Isso deve abrir a janela da seguinte maneira:
Você pode executar a calculadora com entrada de exemplo:
Palavras Finais
Neste tutorial, criamos uma calculadora de gorjeta e divisão de duas maneiras. O primeiro usa uma ferramenta CLI baseada em terminal. A segunda é uma ferramenta GUI usando o Tkinter do Python. Este tutorial mostra como criar um projeto Python simples. Se você precisa aprimorar ou aprimorar suas habilidades em Python, aqui está um curso do Datacamp.
A seguir, você pode conferir como criar um gerador de senha aleatório em Python.