Πώς να δημιουργήσετε μια αριθμομηχανή συμβουλών και διαχωρισμού στην Python

Ας μάθουμε πώς να δημιουργήσουμε μια αριθμομηχανή Tip and Split στην Python.

Είναι ένα υπέροχο προσωπικό έργο που πρέπει να δημιουργήσετε για να εξασκήσετε τις δεξιότητές σας στην Python. Επιπλέον, αυτό το σεμινάριο θα σας διδάξει πώς να δημιουργήσετε την εφαρμογή με δύο τρόπους, πρώτον ως εργαλείο γραμμής εντολών και δεύτερον ως εργαλείο GUI.

Προεπισκόπηση

Θα δημιουργήσουμε την εφαρμογή με δύο τρόπους. Αρχικά, θα δημιουργήσουμε ένα απλό σενάριο φλοιού Python που ζητά από τον χρήστη να εισάγει και γράφει την έξοδο.

Δεύτερον, θα δώσουμε στο πρόγραμμα μια γραφική διεπαφή χρήστη χρησιμοποιώντας το Tkinter.

Προδιαγραφές προγράμματος

Το πρόγραμμα λαμβάνει τρεις εισόδους:

  • Το ποσό του λογαριασμού
  • Το ποσοστό ανατροπής
  • Ο αριθμός των ατόμων που μοιράζονται το λογαριασμό

Χρησιμοποιώντας αυτές τις εισόδους, το πρόγραμμα θα υπολογίσει την ακόλουθη έξοδο:

  • Η συνεισφορά του καθενός στο νομοσχέδιο
  • Η συμβολή του κάθε ατόμου στο φιλοδώρημα
  • Η συνολική συνεισφορά κάθε ατόμου

Αλγόριθμος

Για να επιτευχθεί αυτό, η αριθμομηχανή Tip and Split θα ακολουθήσει έναν πολύ απλό αλγόριθμο που περιγράφεται παρακάτω:

  • Λήψη των εισροών: bill_amount, tip_percentage, number_of_people
  • Υπολογίστε το ποσό φιλοδωρήματος πολλαπλασιάζοντας το ποσό_τιμολογίου * tip_percentage / 100
  • Διαιρέστε το bill_amount με τον αριθμό_of_people για να λάβετε τη συνεισφορά κάθε ατόμου στο λογαριασμό.
  • Διαιρέστε το tip_amount με τον αριθμό_of_people για να λάβετε τη συνεισφορά κάθε ατόμου στο φιλοδώρημα.
  • Τέλος, προσθέστε τις εισφορές στον λογαριασμό και το φιλοδώρημα για να λάβετε το συνολικό πληρωτέο ποσό.
  • Προαπαιτούμενα

    Για να ακολουθήσετε αυτό το σεμινάριο, θα πρέπει να γνωρίζετε και να κατανοείτε τη γλώσσα προγραμματισμού Python. Για αυτό το σεμινάριο, απαιτείται γνώση βασικών εννοιών, συμπεριλαμβανομένων των συναρτήσεων και των κλάσεων.

      Πώς να διαγράψετε το παιχνίδι από το Game Center

    Επιπλέον, θα πρέπει να έχετε εγκατεστημένη την Python στο σύστημά σας. Εάν δεν είναι, κατευθυνθείτε στον ιστότοπο της Python και κάντε λήψη του. Εναλλακτικά, το grtechpc.org διαθέτει έναν διαδικτυακό μεταγλωττιστή Python όπου μπορείτε να εκτελέσετε τον κώδικα Python σας στο πρόγραμμα περιήγησης χωρίς καμία ρύθμιση περιβάλλοντος.

    Δημιουργία της αριθμομηχανής με διεπαφή γραμμής εντολών

    Δημιουργήστε έναν φάκελο έργου

    Για να ξεκινήσετε, μεταβείτε σε έναν κενό φάκελο στο σύστημά σας. Στην περίπτωσή μου, χρησιμοποιώ το Ubuntu 22.04, για να δημιουργήσω έναν φάκελο και να πλοηγηθώ σε αυτόν χρησιμοποιώντας το τερματικό. Πρέπει να εισάγω την ακόλουθη εντολή:

    mkdir tip-calculator && cd tip-calculator

    Δημιουργήστε το Αρχείο Python

    Στη συνέχεια, δημιουργήστε το αρχείο σεναρίου όπου θα γράψουμε το σενάριο Python. Στην περίπτωσή μου, θα χρησιμοποιήσω την εντολή αφής για να το κάνω:

    touch main.py

    Ανοίξτε το αρχείο Script με τον αγαπημένο σας επεξεργαστή κώδικα

    Για να ξεκινήσετε να γράφετε τον κώδικα στο σενάριο, ανοίξτε το αρχείο με τον αγαπημένο σας επεξεργαστή κώδικα. Θα χρησιμοποιήσω το nano που είναι ένα πρόγραμμα επεξεργασίας κειμένου που βασίζεται σε τερματικό.

    nano main.py

    Λάβετε την Εισαγωγή

    Αφού γίνει αυτό, μπορούμε να προσθέσουμε τις ακόλουθες γραμμές κώδικα στην κορυφή του αρχείου:

    # 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

    Εμφάνιση των αποτελεσμάτων

    Τέλος, εξάγετε τα αποτελέσματα στον χρήστη.

    # Displayinnng the results
    print("Bill contribution per person: ", bill_contribution)
    print("Tip contribution per person: ", tip_contribution)
    print("Total contribution per person: ", total_contribution)

    Δοκιμή του Υπολογιστή Συμβουλών και Διαίρεσης

    Τέλος, το αρχείο σεναρίου θα πρέπει να μοιάζει με αυτό:

    # 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)

    Σε αυτό το σημείο, μη διστάσετε να εκτελέσετε την εφαρμογή σας χρησιμοποιώντας την ακόλουθη εντολή:

    python3 main.py

    Δημιουργία του Υπολογιστή Συμβουλών και Διαίρεσης με GUI

    Στο επόμενο τμήμα αυτού του σεμιναρίου, θα εφαρμόσουμε την ίδια εφαρμογή αλλά με γραφική διεπαφή χρήστη. Για να δημιουργήσουμε το GUI, θα χρησιμοποιήσουμε ένα πακέτο που ονομάζεται Tkinter.

      14 Μαθήματα Ethical Hacking για να γίνετε ειδικός σε θέματα ασφάλειας

    Εγκαθιστώ

    Το Tkinter είναι ένα πακέτο ενσωματωμένο στην Standard Library της Python. Αυτό σημαίνει ότι εγκαταστάθηκε από προεπιλογή όταν εγκαταστήσατε την Python.

    Ωστόσο, σε μηχανές Linux με Python εγκατεστημένη από προεπιλογή, το TKinter δεν είναι προεγκατεστημένο για εξοικονόμηση χώρου. Επομένως, πρέπει να το εγκαταστήσετε χειροκίνητα χρησιμοποιώντας την ακόλουθη εντολή:

    sudo apt-get install python3-tk

    Δημιουργήστε ένα αρχείο έργου

    Για να ξεκινήσετε, δημιουργήστε ένα αρχείο όπου θα αποθηκευτεί το σενάριο Python. Αφού δημιουργήσετε το αρχείο, ανοίξτε το με τον επεξεργαστή κειμένου που προτιμάτε.

    touch gui.py

    Εισαγωγή Tkinter

    Στη συνέχεια, εισαγάγετε το πακέτο Tkinter προσθέτοντας την ακόλουθη γραμμή στην κορυφή του αρχείου.

    import tkinter from tk

    Δημιουργήστε τη διεπαφή χρήστη

    Στη συνέχεια, μπορούμε να ξεκινήσουμε τη δημιουργία της διεπαφής χρήστη.

    # 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")

    Ο παραπάνω κώδικας δημιούργησε ένα παράθυρο που περιέχει όλα τα γραφικά στοιχεία διεπαφής χρήστη. Επιπλέον, δημιούργησε μια ετικέτα που θα χρησιμεύσει ως τίτλος του παραθύρου.

      Η Microsoft θα συγχωνεύσει τις εφαρμογές UWP και Win32 με το Project Reunion

    Στη συνέχεια, δημιούργησε ετικέτες και πεδία εισόδου για τις τρεις εισόδους: bill_amount, tip_percentage και number_of_people. Τέλος, δημιούργησε ένα κουμπί στο οποίο ο χρήστης θα κάνει κλικ για να εκτελέσει τον υπολογισμό.

    Δημιουργήστε μια συνάρτηση για τον υπολογισμό των εξόδων

    Μετά από αυτό, μπορούμε να δημιουργήσουμε μια συνάρτηση για να χειριστεί το κλικ του κουμπιού Enter. Αυτή η συνάρτηση θα λάβει τις τιμές των πεδίων εισαγωγής και θα τις χρησιμοποιήσει για να υπολογίσει τις εξόδους χρησιμοποιώντας τον αλγόριθμο που αναφέρθηκε προηγουμένως. Τέλος, θα δημιουργήσει μια ετικέτα για να εμφανίσει την έξοδο και να ενημερώσει το παράθυρο.

    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()

    Ο κώδικας στην παραπάνω συνάρτηση έχει επεξηγηθεί μέσω σχολίων που εξηγούν κάθε σημαντικό βήμα.

    Προσάρτηση του Event Handler στο κουμπί

    Στη συνέχεια, δεσμεύουμε το πρόγραμμα χειρισμού συμβάντων στο συμβάν κλικ στο κουμπί. Το συμβάν κλικ στο κουμπί στο Tkinter αντιπροσωπεύεται από τη συμβολοσειρά ‘‘. Για να συνδέσουμε το συμβάν στον χειριστή συμβάντων, χρησιμοποιούμε τη μέθοδο bind του κουμπιού. Προσθέστε αυτήν τη γραμμή κώδικα κάτω από τον ορισμό της συνάρτησης:

    btn_enter.bind('<Button-1>', handle_click)
    btn_enter.pack()

    Τέλος, για να συνεχίσει να λειτουργεί το παράθυρο, καλούμε τη μέθοδο mainloop του αντικειμένου του παραθύρου.

    window.mainloop()

    Και τελειώσαμε!

    Δοκιμή του Υπολογιστή Συμβουλών και Διαίρεσης

    Μπορείτε να εκτελέσετε την εφαρμογή χρησιμοποιώντας την ακόλουθη εντολή:

    python3 gui.py

    Αυτό θα πρέπει να ανοίξει το παράθυρο ως εξής:

    Μπορείτε να εκτελέσετε την αριθμομηχανή με εισαγωγή δείγματος:

    Τελικές Λέξεις

    Σε αυτό το σεμινάριο, δημιουργήσαμε μια αριθμομηχανή συμβουλών και διαχωρισμού με δύο τρόπους. Το πρώτο χρησιμοποιεί ένα εργαλείο CLI που βασίζεται σε τερματικό. Το δεύτερο είναι ένα εργαλείο GUI που χρησιμοποιεί το Tkinter της Python. Αυτό το σεμινάριο δείχνει πώς να δημιουργήσετε ένα απλό έργο Python. Εάν πρέπει να βελτιώσετε ή να γυαλίσετε τις δεξιότητές σας στην Python, εδώ είναι ένα μάθημα Datacamp.

    Στη συνέχεια, μπορείτε να ελέγξετε πώς να δημιουργήσετε μια δημιουργία τυχαίων κωδικών πρόσβασης στην Python.