Come creare un calcolatore di punta e divisione in Python
Pubblicato: 2023-01-06Impariamo come creare una calcolatrice Tip and Split in Python.
È un ottimo progetto personale da costruire per mettere in pratica le tue abilità Python. Inoltre, questo tutorial ti insegnerà come creare l'applicazione in due modi, prima come strumento da riga di comando e secondo come strumento GUI.
Anteprima
Costruiremo l'applicazione in due modi. Innanzitutto, creeremo un semplice script di shell Python che richiede all'utente l'input e scrive l'output.
In secondo luogo, forniremo al programma un'interfaccia utente grafica utilizzando Tkinter.
Specifica del programma
Il programma riceve tre input:
- L'importo della bolletta
- La percentuale di mancia
- Il numero di persone che condividono il conto
Utilizzando questi input, il programma calcolerà il seguente output:
- Il contributo di ciascuno al conto
- Il contributo di ogni persona alla mancia
- Il contributo totale di ogni persona
Algoritmo
Per raggiungere questo obiettivo, il calcolatore Tip and Split seguirà un algoritmo molto semplice descritto di seguito:
- Ricevi gli input
: bill_amount
,tip_percentage
,number_of_people
- Calcola l'
amount
della mancia moltiplicandobill_amount
*tip_percentage / 100
- Dividi il
bill_amount
per ilnumber_of_people
per ottenere il contributo di ogni persona al conto. - Dividi l'
tip_amount
della mancia per ilnumber_of_people
per ottenere il contributo di ogni persona alla mancia. - Infine, aggiungi i contributi al conto e la mancia per ottenere l'importo totale da pagare.
Prerequisiti
Per seguire questo tutorial, dovresti conoscere e comprendere il linguaggio di programmazione Python. Per questa esercitazione è richiesta la conoscenza dei concetti di base, incluse le funzioni e le classi.
Inoltre, dovresti avere Python installato nel tuo sistema. In caso contrario, vai sul sito Web di Python e scaricalo. In alternativa, Geekflare ha un compilatore Python online in cui puoi eseguire il tuo codice Python nel browser senza alcuna configurazione dell'ambiente.
Costruire la calcolatrice con un'interfaccia a riga di comando
Crea una cartella di progetto
Per iniziare, vai a una cartella vuota nel tuo sistema. Nel mio caso, sto usando Ubuntu 22.04, quindi per creare una cartella e accedervi usando il terminale; Devo inserire il seguente comando:
mkdir tip-calculator && cd tip-calculator
Crea il file Python
Successivamente, crea il file di script in cui scriveremo lo script Python. Nel mio caso, userò il comando touch
per farlo:
touch main.py
Apri il file di script con il tuo editor di codice preferito
Per iniziare a scrivere il codice nello script, apri il file con il tuo editor di codice preferito. nano
che è un editor di testo basato su terminale.
nano main.py
Ricevi l'input
Fatto ciò, possiamo aggiungere le seguenti righe di codice all'inizio del file:
# 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: "))
Fondamentalmente, questo riceve l'input e lancia il tipo di dati di ciascun input da una stringa al tipo più appropriato.
Calcola l'importo della mancia
Successivamente, calcoliamo l'importo della mancia moltiplicando la percentuale della mancia per l'importo della fattura.
tip_amount = bill_amount * tip_percentage / 100
Dividi il conto e la mancia per ottenere il contributo di ogni persona ai due
# 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
Calcola il contributo totale
Quindi, aggiungi i contributi individuali per determinare il contributo totale per persona.
total_contribution = bill_contribution + tip_contribution
Visualizza i risultati
Infine, invia i risultati all'utente.
# Displayinnng the results print("Bill contribution per person: ", bill_contribution) print("Tip contribution per person: ", tip_contribution) print("Total contribution per person: ", total_contribution)
Test del calcolatore di mance e divisioni
Infine, il tuo file di script dovrebbe assomigliare a questo:
# 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)
A questo punto, sentiti libero di testare la tua applicazione usando il seguente comando:
python3 main.py
Costruire il calcolatore di mance e divisioni con la GUI
Nella parte successiva di questo tutorial, implementeremo la stessa applicazione ma con un'interfaccia utente grafica. Per costruire la GUI, useremo un pacchetto chiamato Tkinter.
Impostare
Tkinter è un pacchetto integrato nella libreria standard di Python. Ciò significa che è stato installato per impostazione predefinita quando hai installato Python.
Tuttavia, su macchine Linux con Python installato per impostazione predefinita, TKinter non è preinstallato per risparmiare spazio. Pertanto, è necessario installarlo manualmente utilizzando il seguente comando:
sudo apt-get install python3-tk
Crea un file di progetto
Per iniziare, crea un file in cui verrà archiviato lo script Python. Dopo aver creato il file, aprilo con il tuo editor di testo preferito.
touch gui.py
Importa Tkinter
Successivamente, importa il pacchetto Tkinter aggiungendo la seguente riga all'inizio del file.
import tkinter from tk
Creare l'interfaccia utente
Quindi, possiamo iniziare a creare l'interfaccia utente.
# 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")
Il codice precedente ha creato una finestra contenente tutti i widget dell'interfaccia utente. Inoltre, ha creato un'etichetta che fungerà da titolo della finestra.
Successivamente, ha creato etichette e campi di immissione per i tre input: bill_amount
, tip_percentage
e number_of_people
. Infine, ha creato un pulsante che l'utente farà clic per eseguire il calcolo.
Creare una funzione per calcolare gli output
Successivamente, possiamo creare una funzione per gestire il clic del pulsante Invio. Questa funzione prenderà i valori dei campi di immissione e li utilizzerà per calcolare gli output utilizzando l'algoritmo menzionato prima. Infine, creerà un'etichetta per visualizzare l'output e aggiornare la finestra.
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()
Il codice nella funzione precedente è stato spiegato attraverso commenti che spiegano ogni passaggio principale.
Collegamento del gestore eventi al pulsante
Successivamente, leghiamo il gestore dell'evento all'evento click del pulsante. L'evento clic del pulsante in Tkinter è rappresentato dalla stringa ' <Button-1>
'. Per associare l'evento al gestore dell'evento, utilizziamo il metodo bind del pulsante. Aggiungi questa riga di codice sotto la definizione della funzione:
btn_enter.bind('<Button-1>', handle_click) btn_enter.pack()
Infine, per mantenere la finestra in esecuzione, chiamiamo il metodo mainloop
dell'oggetto window
.
window.mainloop()
E abbiamo finito!
Test del calcolatore di mance e divisioni
È possibile eseguire l'applicazione utilizzando il seguente comando:
python3 gui.py
Questo dovrebbe aprire la finestra come segue:
È possibile eseguire la calcolatrice con input di esempio:
Parole finali
In questo tutorial, abbiamo creato una calcolatrice di punta e divisa in due modi. Il primo utilizza uno strumento CLI basato su terminale. Il secondo è uno strumento GUI che utilizza Tkinter di Python. Questo tutorial mostra come costruire un semplice progetto Python. Se hai bisogno di rispolverare o perfezionare le tue abilità Python, ecco un corso Datacamp.
Successivamente, puoi verificare come creare un generatore di password casuali in Python.