Υπάρχουν δύο τύποι βρόχων στην Python, for και while.
Οι βρόχοι for επαναλαμβάνονται πάνω από μια καθορισμένη ακολουθία. Εδώ είναι ένα παράδειγμα:
primes = [2, 3, 5, 7]
for prime in primes:
print(prime)
Οι βρόχοι for μπορούν να επαναληφθούν σε μια ακολουθία αριθμών χρησιμοποιώντας τις συναρτήσεις "range" και "xrange". Η διαφορά μεταξύ της range και της xrange είναι ότι η συνάρτηση range επιστρέφει μια νέα λίστα με αριθμούς από το συγκεκριμένο εύρος, ενώ η xrange επιστρέφει έναν επαναληπτικό δείκτη, ο οποίος είναι πιο αποδοτικός. (Η Python 3 χρησιμοποιεί τη συνάρτηση range, η οποία λειτουργεί όπως η xrange). Σημειώστε ότι η συνάρτηση range είναι μηδενικής βάσης.
# Εκτυπώνει τους αριθμούς 0,1,2,3,4
for x in range(5):
print(x)
# Εκτυπώνει 3,4,5
for x in range(3, 6):
print(x)
# Εκτυπώνει 3,5,7
for x in range(3, 8, 2):
print(x)
Οι βρόχοι while επαναλαμβάνονται όσο μια συγκεκριμένη λογική συνθήκη είναι αληθής. Για παράδειγμα:
# Εκτυπώνει 0,1,2,3,4
count = 0
while count < 5:
print(count)
count += 1 # Αυτό είναι το ίδιο με το count = count + 1
Η δήλωση break χρησιμοποιείται για να διακόψει έναν βρόχο for ή while, ενώ η continue χρησιμοποιείται για να παρακάμψει το τρέχον μπλοκ και να επιστρέψει στη δήλωση "for" ή "while". Μερικά παραδείγματα:
# Εκτυπώνει 0,1,2,3,4
count = 0
while True:
print(count)
count += 1
if count >= 5:
break
# Εκτυπώνει μόνο περιττούς αριθμούς - 1,3,5,7,9
for x in range(10):
# Έλεγχος αν το x είναι άρτιος
if x % 2 == 0:
continue
print(x)
Σε αντίθεση με γλώσσες όπως C, CPP.. μπορούμε να χρησιμοποιήσουμε το else με τους βρόχους. Όταν η συνθήκη του βρόχου "for" ή "while" αποτύχει τότε το τμήμα κώδικα στο "else" εκτελείται. Αν μια δήλωση break εκτελεστεί μέσα στο βρόχο for τότε το τμήμα "else" παραλείπεται. Σημειώστε ότι το τμήμα "else" εκτελείται ακόμα και αν υπάρχει μια δήλωση continue.
Εδώ είναι μερικά παραδείγματα:
# Εκτυπώνει 0,1,2,3,4 και στη συνέχεια εκτυπώνει "count value reached 5"
count=0
while(count<5):
print(count)
count +=1
else:
print("count value reached %d" %(count))
# Εκτυπώνει 1,2,3,4
for i in range(1, 10):
if(i%5==0):
break
print(i)
else:
print("this is not printed because for loop is terminated because of break but not due to fail in condition")
Περάστε το βρόχο και εκτυπώστε όλους τους άρτιους αριθμούς από τη λίστα αριθμών με την ίδια σειρά που λήφθηκαν. Μην εκτυπώσετε κανέναν αριθμό που έρχεται μετά τον αριθμό 237 στην ακολουθία.