Cómo crear una calculadora de propinas y divisiones en Python

Aprendamos a crear una calculadora de propinas y divisiones en Python.

Es un gran proyecto personal para construir para practicar sus habilidades de Python. Además, este tutorial le enseñará cómo crear la aplicación de dos maneras, primero como una herramienta de línea de comandos y segundo como una herramienta GUI.

Avance

Vamos a construir la aplicación de dos maneras. Primero, crearemos un script de shell de Python simple que solicita al usuario una entrada y escribe la salida.

En segundo lugar, le daremos al programa una interfaz gráfica de usuario usando Tkinter.

Especificación del programa

El programa recibe tres entradas:

  • el monto de la factura
  • El porcentaje de propinas
  • El número de personas que comparten la factura.

Usando estas entradas, el programa calculará la siguiente salida:

  • La contribución de cada persona a la factura.
  • La contribución de cada persona a la propina.
  • La contribución total de cada persona

Algoritmo

Para lograr esto, la calculadora Tip and Split seguirá un algoritmo muy simple que se describe a continuación:

  • Reciba las entradas: bill_amount, tip_percentage, number_of_people
  • Calcule el monto de la propina multiplicando bill_amount * tip_percentage / 100
  • Divide bill_amount por number_of_people para obtener la contribución de cada persona a la factura.
  • Divide propina_cantidad por número_de_personas para obtener la contribución de cada persona a la propina.
  • Por último, suma las aportaciones a la factura y la propina para obtener el importe total a pagar.
  • requisitos previos

    Para seguir este tutorial, debe conocer y comprender el lenguaje de programación Python. Para este tutorial, se requiere conocimiento de conceptos básicos, incluidas funciones y clases.

    Además, debe tener Python instalado en su sistema. Si no es así, diríjase al sitio web de Python y descárguelo. Alternativamente, kirukiru.es tiene un compilador de Python en línea donde puede ejecutar su código de Python en el navegador sin ninguna configuración de entorno.

    Construyendo la calculadora con una interfaz de línea de comandos

    Crear una carpeta de proyecto

    Para comenzar, navegue a una carpeta vacía en su sistema. En mi caso, estoy usando Ubuntu 22.04, así que para crear una carpeta y navegar hasta ella usando la terminal; Necesito ingresar el siguiente comando:

    mkdir tip-calculator && cd tip-calculator

    Crear el archivo Python

    A continuación, cree el archivo de secuencia de comandos donde escribiremos la secuencia de comandos de Python. En mi caso, usaré el comando touch para hacerlo:

    touch main.py

    Abra el archivo de script con su editor de código favorito

    Para comenzar a escribir el código en el script, abra el archivo con su editor de código favorito. Voy a usar nano, que es un editor de texto basado en terminal.

    nano main.py

    Recibir la entrada

    Una vez hecho esto, podemos agregar las siguientes líneas de código en la parte superior del archivo:

    # 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: "))

    Básicamente, esto recibe la entrada y convierte el tipo de datos de cada entrada de una cadena al tipo más apropiado.

    Calcular el monto de la propina

    A continuación, calculamos el monto de la propina multiplicando el porcentaje de la propina por el monto de la factura.

    tip_amount = bill_amount * tip_percentage / 100

    Divida la factura y la propina para obtener la contribución de cada persona a los dos

    # 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 la Aportación Total

    Luego, sume las contribuciones individuales para determinar la contribución total por persona.

    total_contribution = bill_contribution + tip_contribution

    Mostrar los resultados

    Por último, envíe los resultados al usuario.

    # Displayinnng the results
    print("Bill contribution per person: ", bill_contribution)
    print("Tip contribution per person: ", tip_contribution)
    print("Total contribution per person: ", total_contribution)

    Probar la calculadora de propinas y fracciones

    Finalmente, su archivo de script debería verse así:

    # 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)

    En este punto, siéntase libre de probar su aplicación usando el siguiente comando:

    python3 main.py

    Construyendo la calculadora de propinas y fracciones con GUI

    En la siguiente parte de este tutorial, implementaremos la misma aplicación pero con una interfaz gráfica de usuario. Para construir la GUI, usaremos un paquete llamado Tkinter.

    Configuración

    Tkinter es un paquete integrado en la biblioteca estándar de Python. Esto significa que se instaló de manera predeterminada cuando instaló Python.

    Sin embargo, en máquinas Linux con Python instalado de forma predeterminada, TKinter no está preinstalado para ahorrar espacio. Por lo tanto, debe instalarlo manualmente con el siguiente comando:

    sudo apt-get install python3-tk

    Crear un archivo de proyecto

    Para comenzar, cree un archivo donde se almacenará el script de Python. Después de crear el archivo, ábralo con su editor de texto preferido.

    touch gui.py

    Importar Tkinter

    A continuación, importe el paquete Tkinter agregando la siguiente línea en la parte superior del archivo.

    import tkinter from tk

    Crear la interfaz de usuario

    Luego, podemos comenzar a crear la interfaz de usuario.

    # 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")

    El código anterior creó una ventana que contenía todos los widgets de la interfaz de usuario. Además, creó una etiqueta que servirá como título de la ventana.

    A continuación, creó etiquetas y campos de entrada para las tres entradas: bill_amount, tip_percentage y number_of_people. Por último, creó un botón en el que el usuario hará clic para ejecutar el cálculo.

    Crear una función para calcular las salidas

    Después de esto, podemos crear una función para manejar el clic del botón Enter. Esta función tomará los valores de los campos de entrada y los usará para calcular las salidas usando el algoritmo mencionado anteriormente. Por último, creará una etiqueta para mostrar la salida y actualizar la ventana.

    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()

    El código de la función anterior se ha explicado a través de comentarios que explican cada paso principal.

    Adjuntar el controlador de eventos al botón

    A continuación, vinculamos el controlador de eventos al evento de clic de botón. El evento de clic de botón en Tkinter está representado por la cadena ‘‘. Para vincular el evento al controlador de eventos, usamos el método de vinculación del botón. Agregue esta línea de código debajo de la definición de la función:

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

    Por último, para mantener la ventana en ejecución, llamamos al método mainloop del objeto ventana.

    window.mainloop()

    ¡Y hemos terminado!

    Probar la calculadora de propinas y fracciones

    Puede ejecutar la aplicación usando el siguiente comando:

    python3 gui.py

    Esto debería abrir la ventana de la siguiente manera:

    Puede ejecutar la calculadora con entrada de muestra:

    Ultimas palabras

    En este tutorial, creamos una calculadora de propinas y divisiones de dos maneras. El primero utiliza una herramienta CLI basada en terminal. La segunda es una herramienta GUI que utiliza Tkinter de Python. Este tutorial muestra cómo construir un proyecto de Python simple. Si necesita refrescar o pulir sus habilidades de Python, aquí hay un curso de Datacamp.

    A continuación, puede consultar cómo crear un generador de contraseñas aleatorias en Python.