ΕΙΣΑΓΩΓΗ
Στο σημερινό
δωρεάν μάθημα Python, θα συνεχίσουμε την αναφορά μας στα loops και πιο συγκεκριμένα θα μιλήσουμε για
το for loop. Ο λόγος για τον οποίο χρειαζόμαστε
δύο διαφορετικά είδη loop είναι γιατί ενώ το while loop εκτελείται βασιζόμενο
σε κάποια συνθήκη, το for loop βασίζεται σε συγκεκριμένο αριθμό
επαναλήψεων που είναι γνωστός πριν ακόμα γράψουμε τον κώδικα του. Οπότε
μπορούμε να πούμε σαν γενικότερο κανόνα ότι χρησιμοποιούμε το while loop όταν δεν γνωρίζουμε τον αριθμό επαναλήψεων και το for loop όταν ο αριθμός των επαναλήψεων μας είναι γνωστός.
FOR LOOP SYNTAX
Για να
μπορέσουμε να δημιουργήσουμε ένα for loop θα πρέπει να το δομήσουμε ως εξής:
for variable
in [value1, value2, etc.]:
statement
statement
Η λέξη κλειδί
for ορίζει την αρχή του for loop. Αμέσως μετά ορίζουμε μια μεταβλητή η
οποία θα δεχτεί κάθε μια από τις τιμές για τις οποίες θα εκτελεστεί το for loop. Οι τιμές αυτές ορίζονται μετά από
την λέξη in.
Μια απλή
εξήγηση της λειτουργίας του for loop θα μπορούσε να είναι η εξής: Για κάθε
μια από τις τιμές που έχουμε ορίσει μετά το in, εκτέλεσε τον κώδικα που περιγράφουν
τα statements. Για να
εκτελεστεί μεμονωμένα κάθε τιμή ξεχωριστά, η Python αναθέτει προσωρινά την τιμή στην μεταβλητή
που έχει οριστεί μετά την λέξη for.
Όσο αφορά το
εύρος και το είδος των τιμών για τις οποίες μπορεί να εκτελεστεί ένα for loop, αυτό μπορεί να είναι αντικείμενα,
χαρακτήρες, αριθμοί ή ακόμα μια λίστα. Ας δούμε πρώτα πως ορίζουμε ένα απλό for loop και μετά θα συνεχίσουμε την θεωρία μας.
Στο παρακάτω
παράδειγμα θέλουμε να τυπώσουμε στο terminal κάθε ένα από τους χαρακτήρες μιας
λέξης. Η λέξη, δηλαδή το string, θεωρείται ένα γκρουπ από χαρακτήρες. Κάθε ένας χαρακτήρας
ξεχωριστά θα ανατεθεί στην μεταβλητή η οποία χρησιμοποιείται στο κύριο κώδικα
του for loop.
app.py
Output
USING THE RANGE( ) FUNCTION
Η Python έχει έναν εύκολο τρόπο να δημιουργεί λίστα αριθμών χρησιμοποιώντας την range( ) function. Σαν ελάχιστη τιμή, πρέπει να
περάσουμε στη range( ) το εύρος
των αριθμών που θέλουμε να δημιουργήσει. Εδώ πρέπει να προσέξουμε λίγο για το
λειτουργεί η range( ). Ας πούμε για παράδειγμα ότι καλούμε την function σαν range(5). Αυτό σημαίνει ότι θα δημιουργηθούν
πέντε αριθμοί από το 0 μέχρι και το 4.
app.py
Output
Με το range( ) μπορούμε επίσης να ορίσουμε και
τον αριθμό από τον οποίο θα ξεκινήσει η αρίθμηση.
app.py
Output
Μπορούμε επίσης
να ορίσουμε και μια τρίτη παράμετρο που ορίζει κατά πόσο θέλουμε να αυξάνουμε τους
αριθμούς.
app.py
Output
Για να
μπορέσουμε να δημιουργήσουμε αριθμούς με την αντίστροφη σειρά (από τον
μεγαλύτερο προς το μικρότερο) δεν έχουμε παρά να δηλώσουμε αρνητικό τον τρίτο
αριθμό.
app.py
Output
ITERABLE OBJECTS
Σαν iterable objects γενικότερα ορίζουμε στην Python εκείνα τα αντικείμενα επάνω στα οποία
μπορούμε να εκτελέσουμε ένα for loop. Στην αρχή του μαθήματος είδαμε πως
εκτελέσαμε το for loop σε ένα string. Το string θεωρείται
iterable object. Ένα ακόμα iterable object είναι και η λίστα. Επίσημα θα μιλήσουμε για λίστες από το
επόμενο μάθημα αλλά νομίζω ότι δεν είναι καθόλου δύσκολο να καταλάβετε το
παρακάτω παράδειγμα στο οποίο εκτελούμε ένα for loop σε μια λίστα από τιμές.
app.py
Output
Μέσα σε μια
λίστα μπορούμε να έχουμε εκτός από αριθμούς και strings.
app.py
Output
CONTINUE, BREAK, PASS
Πριν κλείσουμε
αυτή την ενότητα, πρέπει να καλύψουμε ακόμα τρεις πολύ σημαντικές εντολές που
συνήθως συνδυάζονται με το for loop και είναι οι: continue, break, και pass.
Η ιδιότητα
του continue είναι να παραβλέπει την τρέχουσα τιμή
του loop βασιζόμενο
σε κάποια συνθήκη που έχουμε καθορίσει.
app.py
Output
Μέσα στο for loop έχουμε ορίσει μια if συνθήκη η οποία ελέγχει αν η
μεταβλητή num έχει
τιμή ίση με τον αριθμό τέσσερα. Αν είναι, τότε η if συνθήκη είναι True οπότε θα εκτελεστεί το continue. Η τιμή τέσσερα παραβλέπεται και το loop συνεχίζει με την αμέσως επόμενη
διαθέσιμη τιμή.
Το break τώρα είναι πιο απόλυτο. Όταν ενεργοποιηθεί σαν επιλογή μέσα
σε ένα for loop, σταματάει η εκτέλεση του loop και αναγκάζει την Python να συνεχίσει με τον υπόλοιπο κώδικα
του προγράμματος εκτός loop.
app.py
Output
Τέλος, το pass αντιπροσωπεύει τον κώδικα που ακόμα δεν έχουμε γράψει
στο πρόγραμμα μας. Επειδή όμως είναι επίσημη εντολή της Python, το πρόγραμμα
μας δεν σταματάει να λειτουργεί, απλά δεν έχει καμία χρήσιμη λειτουργία να παρουσιάσει.
Το παρακάτω for loop λειτουργεί αλλά δεν έχει τίποτα να παρουσιάσει στην οθόνη,
γιατί ακόμα δεν είμαστε σίγουροι για τον κώδικα που θα γράψουμε εκεί. Είναι μια
πολύ χρήσιμη στρατηγική κυρίως σε functions (τα οποία θα μάθουμε αργότερα) να
χρησιμοποιούμε το pass, και αφού δημιουργήσουμε το σκελετό της λογική του
προγράμματος, να γυρίσουμε πίσω και να αντικαταστήσουμε το pass με κανονικό
κώδικα.
app.py
Output
Πριν
κλείσουμε το σημερινό δωρεάν μάθημα Python ας δούμε ένα ολοκληρωμένο παράδειγμα που χρησιμοποιεί nested loops δηλαδή loop μέσα σε loop. Το συγκεκριμένο πρόγραμμα ζητάει
από τον χρήστη να δηλώσει τον αριθμό των μαθητών και μετά τον αριθμό διαγωνισμάτων
ανά μαθητή για να υπολογίσει τον μέσο όρο της βαθμολογίας του.
app.py
Output
Μην ξεχάσετε να κάνετε ένα μικρό donation έτσι ώστε αυτό το site να μεγαλώσει ακόμα πιο πολύ και να αποκτήσει περισσότερες δυνατότητες online παράδοσης δωρεάν μαθημάτων.
full-width
0 Comments
Η γνώμη σας είναι σημαντική.