ΕΙΣΑΓΩΓΗ
Στο σημερινό δωρεάν μάθημα Python θα ασχοληθούμε με τα while loops. Αυτή είναι η
πρώτη ενότητα που θα καλύψουμε από την γενικότερη κατηγορία των repetition structures στην
οποία, όπως θα δούμε και αργότερα, ανήκει κα το for loop. Ας δούμε όμως πρώτα
γιατί χρειαζόμαστε τα loops και
πως ο κώδικας μας μπορεί να μειωθεί αισθητά με την σωστή χρήση τους.
SIMPLE WHILE LOOP EXAMPLE
Όταν γράφουμε προγράμματα στην Python, προσπαθούμε
όσο το δυνατόν περισσότερο να αποφύγουμε να επαναλαμβάνουμε τις ίδιες γραμμές
κώδικα. Σκεφτείτε για παράδειγμα ένα απλό πρόγραμμα μέσα από το οποίο ζητάμε να
καταχωρήσουμε όλους τους εργαζόμενους σε μια εταιρεία. Με την θεωρία που
γνωρίζουμε μέχρι αυτό το σημείο, θα πρέπει να ρωτήσουμε τον χρήστη του
προγράμματος τόσες φορές όσοι είναι οι εργαζόμενοι. Δηλαδή θα χρειαστεί να
γράψουμε την input( ) function τόσες
φορές όσοι είναι οι εργαζόμενοι.
Εδώ φαίνονται ήδη τα προβλήματα τα οποία θα
αντιμετωπίσουμε:
1. Να
μην μας είναι γνωστός ο αριθμός των υπαλλήλων της εταιρείας οπότε θα πρέπει να
γράψουμε ένα αρκετά μεγάλο αριθμό input( ) function για να είμαστε καλυμμένοι
2. Μπορεί
πάλι ο αριθμός των εργαζόμενων να μας είναι γνωστός αλλά ο αριθμός τους να
είναι αρκετά μεγάλος οπότε πάλι καταλήγουμε στο να επαναλάβουμε τον ίδιο input( ) κώδικα.
Σκεφτείτε πως θα είναι ένα πρόγραμμα που έχει 1000 φορές
τον εξής κώδικα:
employee1
= input(“please enter the name for employee #1”)
Πως λοιπόν μας βοηθάει το while loop να
λύσουμε το πρόβλημα επανάληψης του ίδιου κώδικα? Με το while loop μπορούμε να επαναλάβουμε ένα κομμάτι
κώδικα πολλαπλές φορές. Το πόσες φορές θα εκτελεστεί το while loop στηρίζεται στην συνθήκη που θα
ορίσουμε εμείς. Όσο η συνθήκη παραμένει True τότε ο κώδικας θα επαναλαμβάνεται για
αυτό άλλωστε και το while loop είναι
ιδανικό για εκείνες τις περιπτώσεις που δεν γνωρίζουμε τον ακριβή αριθμό
επαναλήψεων.
Το γενικό συντακτικό του while loop είναι το εξής:
while condition:
statement
statement
etc.
Ας δούμε ένα απλό παράδειγμα έτσι ώστε να μπορούμε να
δούμε και με περισσότερες λεπτομέρειες το πως συντάσσεται σωστά στη Python ένα while loop.
app.py
Output
Ξεκινάμε τον κώδικα μας ορίζοντας μια μεταβλητή με το
όνομα more_employees στην
οποία αναθέτουμε την String τιμή ‘y’. Αμέσως μετά
ορίζουμε το while loop μέσα από το οποίο
θα ζητήσουμε από τον χρήστη του προγράμματος να εισάγει το όνομα του εργαζόμενου.
Η λέξη κλειδί while είναι απαραίτητη για να επισημάνει
την αρχή του while loop. Αμέσως μετά
ακολουθεί η συνθήκη η οποία σε κάθε επανάληψη θα εξετάζεται από το while loop. Προσέξτε ότι αν ελέγχετε για ισότητα
θα πρέπει να χρησιμοποιήσετε το διπλό σύμβολο της ισότητας. Για να ολοκληρωθεί
η πρώτη γραμμή ορισμού του while loop, αμέσως
μετά την συνθήκη πρέπει να προσθέσουμε το colon ( : ) σύμβολο. Αν λοιπόν η συνθήκη είναι True τότε το πρόγραμμα μας
θα εκτελέσει τις γραμμές του κώδικα που ανήκουν στο while loop. Στο δικό μας παράδειγμα η συνθήκη
είναι True γιατί
ορίσαμε την τιμή της μεταβλητής έξω από το while loop στην αρχή του προγράμματος. Αυτός βασικά
είναι και ένας τρόπος για να βεβαιωθείτε ότι το while loop θα τρέξει τουλάχιστον μια φορά.
Δώστε λίγο προσοχή στο πως η Python διακρίνει ποιες
γραμμές κώδικα ανήκουν στο while loop. Το
κενό διάστημα (συνήθως απόσταση ενός tab) που έχουμε αφήσει μπροστά από τις γραμμές κώδικα,
κάνει την Python να
καταλάβει ότι το γκρουπ αυτών των γραμμών κώδικα ανήκει στο while loop.
Αν συνθήκη αξιολογηθεί σαν True, τότε ρωτάμε τον χρήστη να εισάγει το
όνομα του εργαζόμενου. Αφού διαβάσουμε το όνομα του τυπώνουμε στο terminal. Αργότερα θα
μάθουμε να το προσθέτουμε σε μια λίστα ή ακόμα καλύτερα σε μια βάση δεδομένων.
Για τώρα απλά αρκούμαστε στο να το τυπώνουμε στο terminal σαν επιβεβαίωση της σωστής
λειτουργίας του προγράμματος μας.
Η τελευταία γραμμή του κώδικα είναι σημαντική γιατί
ρωτάμε τον χρήστη αν έχει και άλλον εργαζόμενο να προσθέσει. Το input που θα εισάγει ο
χρήστης το σώζουμε στην ίδια μεταβλητή την οποία χρησιμοποιεί το while loop για να αξιολογήσει την συνθήκη. Ο
γενικός κανόνας είναι ότι πρέπει μέσα στον κώδικα του while loop να υπάρχει μια λογική της οποίας το
αποτέλεσμα επηρεάζει κατά κάποιο τρόπο τη συνθήκη. Αν δεν υπάρχει αυτή η
λογική, η συνθήκη θα είναι συνέχεια True και το while loop θα εκτελείται συνέχεια καταλήγοντας
σε ένα infinite loop. Προσέχουμε
λοιπόν να προσθέσουμε αυτή τη λογική μέσα στο while loop.
Αφού προσθέσουμε έναν αριθμό εργαζόμενων, απαντάμε n την τελευταία φορά
για να τερματίσουμε το πρόγραμμα. Βασικά οτιδήποτε χαρακτήρα και αν γράψουμε
εκτός από το y θα
κάνει την συνθήκη να έχει False αποτέλεσμα οπότε το while loop θα τερματίσει την εκτέλεση του.
GUESSING A NUMBER GAME
Σε αυτό το δεύτερο παράδειγμα θα χρησιμοποιήσουμε το while loop για να συγκρίνουμε τον αριθμό που
εισάγει ο χρήστης με έναν τυχαίο αριθμό που δημιουργείται από το random.randint( ) function. Για να μπορέσουμε
να δημιουργήσουμε τυχαίους αριθμούς είναι απαραίτητη προϋπόθεση να έχουμε κάνει
import το
πακέτο random. Μην
ανησυχείτε αν δεν καταλαβαίνετε ακόμα την έννοια του πακέτου ή το συντακτικό
για να καλέσουμε την random μέσα
στο κώδικα μας. Για τώρα απλά δεχτείτε το γεγονός ότι με την γραμμή random.randint(1,10) μπορούμε
να δημιουργήσουμε τυχαίους αριθμούς από το 1 μέχρι το 10. Αλλάζοντας τους αριθμούς
μπορείτε να μεγαλώσουμε το εύρος των αριθμών από το οποίο θα προέλθει ο τυχαίος
αριθμός. Αυτό τον τυχαίο αριθμό τον αναθέτουμε εξ αρχής σε μια μεταβλητή με το
όνομα random_number.
Μετά ορίζουμε μια μεταβλητή με το όνομα guess στην οποία
αναθέτουμε το None δηλαδή
κανέναν αριθμό. Επειδή οι δύο μεταβλητές έχουν εξ αρχής διαφορετικές τιμές, η
συνθήκη μας είναι True οπότε
εκτελείται ο κώδικας μέσα στο while loop. Το
πρόγραμμα μας δίνει, μέσω ενός συνδυασμού if else statements, μηνύματα που μας
καθοδηγούν να βρούμε τον τυχαίο αριθμό.
app.py
Output
Μην ξεχάσετε
να κάνετε ένα μικρό donationέτσι ώστε αυτό το siteνα μεγαλώσει ακόμα πιο πολύ
και να αποκτήσει περισσότερες δυνατότητες onlineπαράδοσης δωρεάν μαθημάτων.
0 Comments
Η γνώμη σας είναι σημαντική.