Ο βρόχος (Loop) είναι μια σειρά εντολών που εκτελούνται επαναλαμβανόμενα μέχρι τη στιγμή που θα συμβεί μια συνθήκη.
ΕΝΤΟΛΗ WHILE
- Η λέξη while χρησιμοποιείται για τη δημιουργία βρόχου που εκτελείται άγνωστο αριθμό φορών βάσει της συνθήκης που την ακολουθεί.
- >>> while συνθήκη:
- >>> εντολή1
- >>> εντολή2
- >>> εντολή3
- Ο βρόχος while συνεχίζει να εκτελείται όσο η συνθήκη είναι True. Όταν η συνθήκη γίνει False, ο βρόχος σταματάει να εκτελείται.
Στα επόμενα παραδείγματα, εμφανίζουμε α) τα πολλαπλάσια του 5 μέχρι τον αριθμό 50 και β) τα τετράγωνα των αριθμών 1 έως και 10.
Στο παράδειγμα αυτό, χρησιμοποιούμε την εντολή while για να εμφανίσουμε μια σειρά αριθμών βάσει ενός ζεύγους συνθηκών.
ΜΕΤΑΒΛΗΤΗ ΦΡΟΥΡΟΣ
- Συχνά, οι εντολές while ελέγχονται από μία μεταβλητή που ονομάζεται φρουρός, η οποία λειτουργεί ως φρουρός του βρόχου.
- Η μεταβλητή φρουρός χρησιμοποιείται στη συνθήκη για να συγκριθεί με κάποια άλλη τιμή (τιμή φρουρός) ελέγχοντας την είσοδο ή όχι στο βρόχο.
Μεταβλητή φρουρός - name - , Τιμή Φρουρός "end"
ΠΙΘΑΝΑ ΛΑΘΗ
- Η εντολή while θέλει προσοχή γιατί αν η συνθήκη είναι πάντα True, ο βρόχος εκτελείται επ’ άπειρον.
- Αυτό ονομάζεται ατέρμων βρόχος και οδηγεί σε κρέμασμα του προγράμματος.
Στο παραπάνω κώδικα, έχουμε ατέρμων βρόχο. Για να τον διακόψουμε, κλείνουμε τον Φλοιό της Python ή πατάμε CTRL^C.
ΑΤΕΡΜΟΝΕΣ ΒΡΟΧΟΙ
- Για την αποφυγή τέτοιων λαθών, θα πρέπει η μεταβλητή φρουρός να αλλάζει τιμές μέσα στο βρόχο.
- Στο επόμενο παράδειγμα, για την αποφυγή ατέρμονος βρόχου, προσαυξάνουμε την τιμή της μεταβλητής counter κατά 1 μέσα στο βρόχο.
- Όταν γράφουμε μια εντολή while, πρέπει να σιγουρευόμαστε ότι η συνθήκη θα γίνει κάποια στιγμή False, διαφορετικά δημιουργείται ατέρμων βρόχος.
Στο παράδειγμα, αν και η μεταβλητή φρουρός αλλάζει τιμές, η συνθήκη είναι πάντα True, γιατί η μεταβλητή δεν θα γίνει ποτέ ίση με 0.
WHILE TRUE:
- Είναι τύπος βρόχου που θα μπορούσε να είναι ατέρμων, αλλά ωστόσο, δίνει στο χρήστη τη δυνατότητα άμεσου τερματισμού.
- Με την εντολή break μπορούμε άμεσα να τερματίσουμε το βρόχο. Με την εντολή continue μπορούμε να επιστρέψουμε στην αρχή του βρόχου.
>>> while true:
>>> εντολές
>>> if condition:
>>> break
>>> if condition:
>>> continue
Στο παράδειγμα, χρησιμοποιούμε ένα while true βρόχο για να εμφανίσουμε μια σειρά αριθμούς μεταξύ 1 και 10 χωρίς τον 5.
ΕΝΤΟΛΗ FOR
- Η εντολή for επαναλαμβάνει ένα τμήμα κώδικα, χωρίς όμως να βασίζεται στο αποτέλεσμα μιας συνθήκης.
- Αντιθέτως, βασίζεται σε μία ακολουθία τιμών που παράγονται από αυτή και εκτελεί το τμήμα εντολών της μία φορά για κάθε στοιχείο της συγκεκριμένης ακολουθίας τιμών.
- Όταν φτάσει στο τέλος της ακολουθίας, ο βρόχος ολοκληρώνεται.
>>> for x in ακολουθία:
>>> εντολή1
>>> εντολή2
>>> εντολή3
Ο παρακάτω κώδικας δέχεται μία λέξη από το χρήστη και εμφανίζει ένα-ένα τα γράμματα της ανά γραμμή.
- Κάθε ακολουθία μιας εντολής for αποτελείται από στοιχεία.
- Κάθε string είναι μία ακολουθία στοιχείων όπου κάθε στοιχείο είναι και ένας χαρακτήρας.
- Στο παράδειγμα, το string “python” έχει το “p” ως πρώτο στοιχείο, το “y” ως δεύτερο κοκ.
ΤΟ ΚΕΡΔΟΣ ΤΗΣ FOR
- Για να εμφανίσουμε 5 φορές τη λέξης Hello στην οθόνη, μπορούμε να γράψουμε επαναλαμβανόμενα 5 φορές την ίδια εντολή.
- Εναλλακτικά, επειδή αυτό είναι κουραστικό, μπορούμε να χρησιμοποιήσουμε μια εντολή for που θα μας επιτρέψει να γράψουμε την εντολή μία φορά αλλά να τις εκτελέσουμε 5.
ΣΥΝΑΡΤΗΣΗ RANGE()
- Η εντολή for συχνά χρησιμοποιείται σε συνδυασμό με τη συνάρτηση range() που επιστρέφει μια ακολουθία αριθμών.
- Αν δώσουμε στη συνάρτηση range() ένα θετικό αριθμό ως όρισμα, επιστρέφει μία σειρά αριθμών που αρχίζει με το 0, μέχρι και έναν λιγότερο από τον αριθμό που δώσαμε.
Η εντολή range(5) επιστρέφει τη σειρά [0, 1, 2, 3, 4].
- Αν δώσουμε δύο αριθμούς ως ορίσματα στη range(), επιστρέφει μια σειρά αριθμών από 0, έως και έναν λιγότερο από το δεύτερο αριθμό.
- Ο κώδικας αυτός λέει στην Python να κάνει τα εξής:
- Ξεκίνα να μετράς από το 0 και σταμάτα πριν φτάσεις το 5.
- Για κάθε αριθμό που μετράς, αποθήκευσε την τιμή του στο x.
- Εκτέλεσε τις εντολές του βρόχου (τη συνάρτηση print)
- Η συνάρτηση range() μπορεί να έχει και 3 ορίσματα: την αρχική τιμή, την τελική τιμή και το βήμα της σειράς αριθμών. Η αρχική τιμή είναι πάντα η πρώτη τιμή της σειράς ενώ η τελική τιμή ποτέ δεν συμπεριλαμβάνεται.
Το επόμενο πρόγραμμα εμφανίζει 3 ακολουθίες αριθμών χρησιμοποιώντας την range():
ΕΜΦΩΛΕΥΜΕΝΟΙ ΒΡΟΧΟΙ
ΕΜΦΩΛΕΥΜΕΝΑ BLOCKS
FOR ή WHILE;
- Η εντολή for χρησιμοποιείται όταν γνωρίζουμε τον ακριβή αριθμό των επαναλήψεων που θα εκτελεστούν.
- Η εντολή while είναι χρήσιμη όταν δεν γνωρίζουμε τον ακριβή αριθμό επαναλήψεων.
Μακρής Ηλίας Π.Ε. Πληροφορικής