Como criar uma calculadora de gorjeta e divisão em Python

Publicados: 2023-01-06

Vamos 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.

Screenshot-from-2023-01-05-19-30-39

Em segundo lugar, daremos ao programa uma Interface Gráfica de Usuário usando o Tkinter.

Captura de tela de 2023-01-05-15-11-29

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:

  1. Receba as entradas : bill_amount , tip_percentage , number_of_people
  2. Calcule o amount da gorjeta multiplicando bill_amount * tip_percentage / 100
  3. Divida bill_amount por number_of_people para obter a contribuição de cada pessoa para a conta.
  4. Divida o valor da tip_amount por number_of_people para obter a contribuição de cada pessoa para a gorjeta.
  5. 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
Screenshot-from-2023-01-05-19-32-16

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:

Screenshot-from-2023-01-05-20-27-26

Você pode executar a calculadora com entrada de exemplo:

Screenshot-from-2023-01-05-20-29-09

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.