Comment créer une calculatrice de pourboire et de fractionnement en Python

Publié: 2023-01-06

Apprenons à 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.

Capture d'écran du 2023-01-05-19-30-39

Deuxièmement, nous donnerons au programme une interface utilisateur graphique utilisant Tkinter.

Capture d'écran-du-2023-01-05-15-11-29

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 :

  1. Recevez les entrées : bill_amount tip_percentage , number_of_people
  2. Calculez le amount du pourboire en multipliant le bill_amount * tip_percentage / 100
  3. Divisez le bill_amount par number_of_people pour obtenir la contribution de chaque personne à la facture.
  4. Divisez le tip_amount par number_of_people pour obtenir la contribution de chaque personne au pourboire.
  5. 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
Capture d'écran-du-2023-01-05-19-32-16

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 :

Capture d'écran du 2023-01-05-20-27-26

Vous pouvez exécuter la calculatrice avec un exemple d'entrée :

Capture d'écran-du-2023-01-05-20-29-09

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.