Επιστημονικά Θέματα, Τεχνολογικά Νέα, Μουσική, Τραγούδια, Προγραμματισμός, Φωτογραφίες, Βίντεο, Καλλιτεχνικά θέματα, Τρόπος Ζωής, Θέματα θρησκείας, Συμβουλές και άλλα πολλά από το www.iliasblog.gr  

Δομή Επανάληψης


Ο βρόχος (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():  


ΕΜΦΩΛΕΥΜΕΝΟΙ ΒΡΟΧΟΙ
  • Οι βρόχοι μπορούν να είναι εμφωλευμένοι ο ένας μέσα στον άλλο.
  • Για κάθε επανάληψη του εξωτερικού βρόχου, η Python εκτελεί όλες τις εντολές του εσωτερικού βρόχου.

ΕΜΦΩΛΕΥΜΕΝΑ BLOCKS


FOR ή WHILE;
  • Η εντολή for χρησιμοποιείται όταν γνωρίζουμε τον ακριβή αριθμό των επαναλήψεων που θα εκτελεστούν.
  • Η εντολή while είναι χρήσιμη όταν δεν γνωρίζουμε τον ακριβή αριθμό επαναλήψεων.

Μακρής Ηλίας Π.Ε. Πληροφορικής