Cómo crear una calculadora de propinas y divisiones en Python
Publicado: 2023-01-06Aprendamos 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:
- Recibe las entradas
: bill_amount
,tip_percentage
,number_of_people
- Calcule el
amount
de la propina multiplicandobill_amount
*tip_percentage / 100
- Divide
bill_amount
pornumber_of_people
para obtener la contribución de cada persona a la factura. - Divide
tip_amount
pornumber_of_people
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, Geekflare 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.
Luego, 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 ' <Button-1>
'. 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 window
.
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.