Aprendamos a crear una calculadora de propinas y divisiones en Python.
Este es un gran proyecto personal para construir para practicar sus habilidades de Python. Además, este tutorial le enseñará cómo construir la aplicación de dos maneras, primero como una herramienta de línea de comandos y segundo como una herramienta GUI.
Visión
Construiremos la aplicación de dos maneras. Primero, crearemos un script de shell de Python simple que solicite al usuario una entrada y escriba la salida.
En segundo lugar, le daremos al programa una interfaz gráfica de usuario utilizando Tkinter.
Especificación del programa
El programa recibe tres entradas:
- El monto de la factura
- El porcentaje de propina
- El número de personas que comparten la factura.
Usando estas entradas, el programa calculará la siguiente salida:
- La contribución de todos a la factura.
- Aporte de cada uno a la propina
- La contribución total de todos
Algoritmo
Para lograr esto, la calculadora Tip and Split seguirá un algoritmo muy simple que se describe a continuación:
- Recibir entradas
: bill_amount
,tip_percentage
,number_of_people
- Calcula la propina
amount
multiplicando elbill_amount
*tip_percentage / 100
- dividir el
bill_amount
mediantenumber_of_people
para conseguir la aportación de todos a la factura. - dividir el
tip_amount
mediantenumber_of_people
para obtener la contribución de todos a la propina. - Finalmente, agregue las contribuciones de facturas y la propina para obtener el monto total a pagar.
condiciones previas
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, Python debe estar instalado en su sistema. Si no, ve a sitio web de Python y descargarlo 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.
Cree 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 acceder a 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 en el que escribiremos la secuencia de comandos de Python. En mi caso usaré touch
comando para hacerlo:
touch main.py
Abra el archivo de script con su editor de código favorito
Para comenzar a escribir el código del script, abra el archivo con su editor de código favorito. Voy a utilizar nano
que es un editor de texto basado en terminal.
nano main.py
Recibir 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 en 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
Divide la cuenta y la propina para obtener la contribución de cada persona a ambos
# 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 contribución total
Luego sume las contribuciones individuales para determinar la contribución total por persona.
total_contribution = bill_contribution + tip_contribution
Mostrar los resultados
Finalmente, 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)
Prueba de calculadora de propina y división
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éntete libre de probar tu aplicación usando el siguiente comando:
python3 main.py
Cree una calculadora de propinas y divisiones 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.
Establecimiento
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 por defecto, 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 favorito.
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
Entonces 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
. Finalmente, 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 eso, 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 utilizará para calcular las salidas utilizando el algoritmo mencionado anteriormente. Finalmente, 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 función anterior se ha explicado con comentarios que explican cada paso importante.
Adjuntar 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()
Finalmente, para mantener la ventana en funcionamiento, llamamos al mainloop
método de window
cosa.
window.mainloop()
¡Y hemos terminado!
Prueba de calculadora de propina y división
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, hemos creado 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 crear un proyecto de Python simple. Si necesita repasar o repasar sus habilidades con Python, aquí hay un Cursos de campo de datos.
Luego puede averiguar cómo crear un generador de contraseñas aleatorias en Python.
Si quiere puede hacernos una donación por el trabajo que hacemos, lo apreciaremos mucho.
Direcciones de Billetera:
- BTC: 14xsuQRtT3Abek4zgDWZxJXs9VRdwxyPUS
- USDT: TQmV9FyrcpeaZMro3M1yeEHnNjv7xKZDNe
- BNB: 0x2fdb9034507b6d505d351a6f59d877040d0edb0f
- DOGE: D5SZesmFQGYVkE5trYYLF8hNPBgXgYcmrx
También puede seguirnos en nuestras Redes sociales para mantenerse al tanto de los últimos post de la web:
- Telegram
Disclaimer: En Cryptoshitcompra.com no nos hacemos responsables de ninguna inversión de ningún visitante, nosotros simplemente damos información sobre Tokens, juegos NFT y criptomonedas, no recomendamos inversiones