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

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.

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 : montant_bill, pourcentage_tip, nombre_de_personnes
  • Calculez le montant du pourboire en multipliant le bill_amount * tip_percentage / 100
  • Divisez le bill_amount par number_of_people pour obtenir la contribution de chaque personne à la facture.
  • Divisez le tip_amount par number_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, toptips.fr 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 : montant_bill, pourcentage_pourboire et nombre_de_personnes. 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 ‘‘. 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.