Comment créer une calculatrice de pourboire et de fractionnement en Python
Publié: 2023-01-06Apprenons à créer une calculatrice Tip and Split en Python.
C'est un excellent projet personnel à construire pour mettre en pratique vos compétences Python. De plus, ce didacticiel vous apprendra à créer l'application de deux manières, d'abord en tant qu'outil de ligne de commande et ensuite en tant qu'outil graphique.
Aperçu
Nous allons construire l'application de deux manières. Tout d'abord, nous allons créer un script shell Python simple qui invite l'utilisateur à entrer et écrit la sortie.
Deuxièmement, nous donnerons au programme une interface utilisateur graphique utilisant Tkinter.
Spécification du programme
Le programme reçoit trois entrées :
- Le montant de la facture
- Le pourcentage de pourboire
- Le nombre de personnes partageant la facture
En utilisant ces entrées, le programme calculera la sortie suivante :
- Contribution de chacun à la facture
- Contribution de chacun au pourboire
- La contribution totale de chacun
Algorithme
Pour y parvenir, le calculateur Tip and Split suivra un algorithme très simple décrit ci-dessous :
- Recevez les entrées
: bill_amount
tip_percentage
,number_of_people
- Calculez le
amount
du pourboire en multipliant lebill_amount
*tip_percentage / 100
- Divisez le
bill_amount
parnumber_of_people
pour obtenir la contribution de chaque personne à la facture. - Divisez le
tip_amount
parnumber_of_people
pour obtenir la contribution de chaque personne au pourboire. - Enfin, ajoutez les contributions à la facture et le pourboire pour obtenir le montant total à payer.
Conditions préalables
Pour suivre ce tutoriel, vous devez connaître et comprendre le langage de programmation Python. Pour ce didacticiel, la connaissance des concepts de base, y compris les fonctions et les classes, est requise.
De plus, Python doit être installé sur votre système. Si ce n'est pas le cas, rendez-vous sur le site Web de Python et téléchargez-le. Alternativement, Geekflare dispose d'un compilateur Python en ligne où vous pouvez exécuter votre code Python dans le navigateur sans aucune configuration d'environnement.
Construire la calculatrice avec une interface de ligne de commande
Créer un dossier de projet
Pour commencer, accédez à un dossier vide de votre système. Dans mon cas, j'utilise Ubuntu 22.04, donc pour créer un dossier et y accéder à l'aide du terminal; J'ai besoin d'entrer la commande suivante :
mkdir tip-calculator && cd tip-calculator
Créer le fichier Python
Ensuite, créez le fichier de script dans lequel nous écrirons le script Python. Dans mon cas, je vais utiliser la commande touch
pour le faire :
touch main.py
Ouvrez le fichier de script avec votre éditeur de code préféré
Pour commencer à écrire le code du script, ouvrez le fichier avec votre éditeur de code préféré. Je vais utiliser nano
qui est un éditeur de texte basé sur un terminal.
nano main.py
Recevoir l'entrée
Ceci fait, nous pouvons ajouter les lignes de code suivantes en haut du fichier :
# 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: "))
Fondamentalement, cela reçoit l'entrée et convertit le type de données de chaque entrée d'une chaîne vers le type le plus approprié.
Calculer le montant du pourboire
Ensuite, nous calculons le montant du pourboire en multipliant le pourcentage du pourboire par le montant de la facture.
tip_amount = bill_amount * tip_percentage / 100
Divisez la facture et le pourboire pour obtenir la contribution de chaque personne aux deux
# 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
Calculer la contribution totale
Ensuite, additionnez les contributions individuelles pour déterminer la contribution totale par personne.
total_contribution = bill_contribution + tip_contribution
Afficher les résultats
Enfin, envoyez les résultats à l'utilisateur.
# 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 du calculateur de pourboire et de fractionnement
Enfin, votre fichier de script devrait ressembler à ceci :
# 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)
À ce stade, n'hésitez pas à tester votre application à l'aide de la commande suivante :
python3 main.py
Construire le calculateur de pourboire et de fractionnement avec l'interface graphique
Dans la partie suivante de ce didacticiel, nous implémenterons la même application mais avec une interface utilisateur graphique. Pour construire l'interface graphique, nous utiliserons un package appelé Tkinter.
Mise en place
Tkinter est un package intégré à la bibliothèque standard de Python. Cela signifie qu'il a été installé par défaut lorsque vous avez installé Python.
Cependant, sur les machines Linux avec Python installé par défaut, TKinter n'est pas préinstallé pour économiser de l'espace. Par conséquent, vous devez l'installer manuellement à l'aide de la commande suivante :
sudo apt-get install python3-tk
Créer un fichier de projet
Pour commencer, créez un fichier dans lequel le script Python sera stocké. Après avoir créé le fichier, ouvrez-le avec votre éditeur de texte préféré.
touch gui.py
Importer Tkinter
Ensuite, importez le package Tkinter en ajoutant la ligne suivante en haut du fichier.
import tkinter from tk
Créer l'interface utilisateur
Ensuite, nous pouvons commencer à créer l'interface utilisateur.
# 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")
Le code ci-dessus a créé une fenêtre contenant tous les widgets de l'interface utilisateur. De plus, il a créé une étiquette qui servira de titre à la fenêtre.
Ensuite, il a créé des étiquettes et des champs de saisie pour les trois entrées : bill_amount
, tip_percentage
et number_of_people
. Enfin, il a créé un bouton sur lequel l'utilisateur cliquera pour exécuter le calcul.
Créer une fonction pour calculer les sorties
Après cela, nous pouvons créer une fonction pour gérer le clic du bouton Entrée. Cette fonction prendra les valeurs des champs d'entrée et les utilisera pour calculer les sorties en utilisant l'algorithme mentionné précédemment. Enfin, il créera une étiquette pour afficher la sortie et mettre à jour la fenêtre.
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()
Le code de la fonction ci-dessus a été expliqué par des commentaires expliquant chaque étape majeure.
Attacher le gestionnaire d'événements au bouton
Ensuite, nous lions le gestionnaire d'événements à l'événement de clic sur le bouton. L'événement de clic de bouton dans Tkinter est représenté par la chaîne ' <Button-1>
'. Pour lier l'événement au gestionnaire d'événements, nous utilisons la méthode bind du bouton. Ajoutez cette ligne de code sous la définition de la fonction :
btn_enter.bind('<Button-1>', handle_click) btn_enter.pack()
Enfin, pour maintenir la fenêtre en cours d'exécution, nous appelons la méthode mainloop
de l'objet window
.
window.mainloop()
Et nous avons terminé !
Test du calculateur de pourboire et de fractionnement
Vous pouvez exécuter l'application à l'aide de la commande suivante :
python3 gui.py
Cela devrait ouvrir la fenêtre comme suit :
Vous pouvez exécuter la calculatrice avec un exemple d'entrée :
Derniers mots
Dans ce didacticiel, nous avons créé une calculatrice de pourboire et de fractionnement de deux manières. Le premier utilise un outil CLI basé sur un terminal. Le second est un outil graphique utilisant Tkinter de Python. Ce tutoriel montre comment créer un projet Python simple. Si vous avez besoin de parfaire ou de peaufiner vos compétences Python, voici un cours Datacamp.
Ensuite, vous pouvez découvrir comment créer un générateur de mot de passe aléatoire en Python.