Ας μάθουμε πώς να δημιουργήσουμε μια αριθμομηχανή Tip and Split στην Python.
Είναι ένα υπέροχο προσωπικό έργο που πρέπει να δημιουργήσετε για να εξασκήσετε τις δεξιότητές σας στην Python. Επιπλέον, αυτό το σεμινάριο θα σας διδάξει πώς να δημιουργήσετε την εφαρμογή με δύο τρόπους, πρώτον ως εργαλείο γραμμής εντολών και δεύτερον ως εργαλείο GUI.
Πίνακας περιεχομένων
Προεπισκόπηση
Θα δημιουργήσουμε την εφαρμογή με δύο τρόπους. Αρχικά, θα δημιουργήσουμε ένα απλό σενάριο φλοιού Python που ζητά από τον χρήστη να εισάγει και γράφει την έξοδο.
Δεύτερον, θα δώσουμε στο πρόγραμμα μια γραφική διεπαφή χρήστη χρησιμοποιώντας το Tkinter.
Προδιαγραφές προγράμματος
Το πρόγραμμα λαμβάνει τρεις εισόδους:
- Το ποσό του λογαριασμού
- Το ποσοστό ανατροπής
- Ο αριθμός των ατόμων που μοιράζονται το λογαριασμό
Χρησιμοποιώντας αυτές τις εισόδους, το πρόγραμμα θα υπολογίσει την ακόλουθη έξοδο:
- Η συνεισφορά του καθενός στο νομοσχέδιο
- Η συμβολή του κάθε ατόμου στο φιλοδώρημα
- Η συνολική συνεισφορά κάθε ατόμου
Αλγόριθμος
Για να επιτευχθεί αυτό, η αριθμομηχανή Tip and Split θα ακολουθήσει έναν πολύ απλό αλγόριθμο που περιγράφεται παρακάτω:
Προαπαιτούμενα
Για να ακολουθήσετε αυτό το σεμινάριο, θα πρέπει να γνωρίζετε και να κατανοείτε τη γλώσσα προγραμματισμού Python. Για αυτό το σεμινάριο, απαιτείται γνώση βασικών εννοιών, συμπεριλαμβανομένων των συναρτήσεων και των κλάσεων.
Επιπλέον, θα πρέπει να έχετε εγκατεστημένη την 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.
Εγκαθιστώ
Το 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")
Ο παραπάνω κώδικας δημιούργησε ένα παράθυρο που περιέχει όλα τα γραφικά στοιχεία διεπαφής χρήστη. Επιπλέον, δημιούργησε μια ετικέτα που θα χρησιμεύσει ως τίτλος του παραθύρου.
Στη συνέχεια, δημιούργησε ετικέτες και πεδία εισόδου για τις τρεις εισόδους: 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 αντιπροσωπεύεται από τη συμβολοσειρά ‘
btn_enter.bind('<Button-1>', handle_click) btn_enter.pack()
Τέλος, για να συνεχίσει να λειτουργεί το παράθυρο, καλούμε τη μέθοδο mainloop του αντικειμένου του παραθύρου.
window.mainloop()
Και τελειώσαμε!
Δοκιμή του Υπολογιστή Συμβουλών και Διαίρεσης
Μπορείτε να εκτελέσετε την εφαρμογή χρησιμοποιώντας την ακόλουθη εντολή:
python3 gui.py
Αυτό θα πρέπει να ανοίξει το παράθυρο ως εξής:
Μπορείτε να εκτελέσετε την αριθμομηχανή με εισαγωγή δείγματος:
Τελικές Λέξεις
Σε αυτό το σεμινάριο, δημιουργήσαμε μια αριθμομηχανή συμβουλών και διαχωρισμού με δύο τρόπους. Το πρώτο χρησιμοποιεί ένα εργαλείο CLI που βασίζεται σε τερματικό. Το δεύτερο είναι ένα εργαλείο GUI που χρησιμοποιεί το Tkinter της Python. Αυτό το σεμινάριο δείχνει πώς να δημιουργήσετε ένα απλό έργο Python. Εάν πρέπει να βελτιώσετε ή να γυαλίσετε τις δεξιότητές σας στην Python, εδώ είναι ένα μάθημα Datacamp.
Στη συνέχεια, μπορείτε να ελέγξετε πώς να δημιουργήσετε μια δημιουργία τυχαίων κωδικών πρόσβασης στην Python.