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

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.

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 valor da gorjeta multiplicando bill_amount * tip_percentage / 100
  • Divida bill_amount por number_of_people para obter a contribuição de cada pessoa para a conta.
  • Divida o valor da gorjeta por number_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.

      Computação utilitária: o que significa?

    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 etechpt.com 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.

      Aumente a experiência do usuário com estes 6 softwares de gamificação

    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.

      Como alterar o tema de cores do Microsoft Office

    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 de clique do botão no Tkinter é representado pela string ‘‘. 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 janela.

    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 amostra:

    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.