Βρόχοι (Loops)

Με τους βρόχους μπορείτε να εκτελέσετε επαναληπτικά ένα μπλοκ κώδικα.

Στην Python μπορείτε να χρησιμοποιήσετε διαφορετικούς τύπους βρόχου ανάλογα με την περίπτωση.

Ο βρόχος while

Η σύνταξη του βρόχου είναι:

while (συνθήκη):
	...	
	...

Ο βρόχος while εκτελείται συνέχεια όσο η συνθήκη είναι αληθής

Στο παρακάτω παράδειγμα εκτελείται το μπλοκ κώδικα συνολικά 5 φορές αφού σε κάθε κύκλο (βρόχο) γίνεται έλεγχος της συνθήκης (i<5) η οποία παύει να ισχύει όταν i=5.

i = 0
while(i<5):
	print(i)
	i = i+1

0
1
2
3
4

Αν η μεταβλητή δεν αυξάνεται τότε θα "πέσουμε" σε ατέρμονα βρόχο.

Η παρένθεση στη συνθήκη είναι προαιρετική.

Η εντολή i = i+1 μπορεί να γραφεί και ως i+=1.

Ο βρόχος for

Με τον βρόχο for μπορούμε να διασχίσουμε τα στοιχεία μια σειράς δεδομένων όπως list ή string όπως αυτά είναι διατεταγμένα στη σειρά.

Η σύνταξη του βρόχου είναι:

for ... in ...:

Στο παρακάτω παράδειγμα θα τυπωθούν όλα τα γράμματα του string name.

name = "Leonidas"
for x in name:
	print(x)

ή

for x in "Leonidas":
	print(x)

ή

fruits = ['πορτοκάλι', 'μήλο', 'αχλάδι']
for x in fruits:
	print(x)
πορτοκάλι
μήλο
αχλάδι	

ή

fruits = ['πορτοκάλι', 'μήλο', 'αχλάδι']
for x in fruits:
	print(x, len(x)) # η len() επιστρέφει το μήκος της συμβολοσειράς
πορτοκάλι 9
μήλο 4
αχλάδι 6

Η συνάρτηση range()

Με τη συνάρτηση range() ορίζουμε μια σειρά αριθμών. Η range() μπορεί να χρησιμοποιηθεί σε συνδυασμό με την for για τη διάσχιση ενός πεδίου αριθμών.

Η αρίθμηση στη range() αρχίζει από το 0. Εκτός και αν έχει δηλωθεί διαφορετικά όπως φαίνεται στα παρακάτω παραδείγματα.

range(5) # από το 0 μέχρι και το 4 (0, 1, 2, 3, 4)
range(5, 10) # από το 5 μέχρι και το 9 (5, 6, 7, 8, 9)
range(0, 10, 3) # από το 0 μέχρι και το 9 σε βήματα του 3 (0, 3, 6, 9)
range(-10, -100, -30) # από το -10 μέχρι και το -99 σε βήματα του -30 (-10, -40, -70)

Παραδείγματα της for σε συνδυασμό με την range().

for x in range(5):
	print(x)
0
1
2
3
4
fruits = ['πορτοκάλι', 'μήλο', 'αχλάδι']
for x in range(len(fruits)): # η len() επιστρέφει το μήκος της λίστας
	print(x, fruits[x])
0 πορτοκάλι
1 μήλο
2 αχλάδι

Οι εντολές break και continue

Οι εντολές αυτές τοποθετούνται μέσα σε έναν βρόχο για να διακόψουν τον βρόχο (break) ή να τον συνεχίσουν (continue) με τον επόμενο κύκλο όταν μια συνθήκη ικανοποιείται.

Η εντολή break

Διακόπτει τον βρόχο όταν μια συνθήκη ικονοποιηθεί.

Στο παρακάτω παράδειγμα αναζητούμε ένα στοιχείο από τη λίστα και όταν βρεθεί σταματάμε τον βρόχο.

fruits = ['πορτοκάλι', 'μήλο', 'αχλάδι']
for x in fruits:
	print(x)
	if(x == 'μήλο'):
		break
πορτοκάλι
μήλο	

Η εντολή continue

Συνεχίζει τον βρόχο από την αρχή όταν μια συνθήκη ικονοποιηθεί.

Στο παρακάτω παράδειγμα αναζητούμε να τυπώσουμε ένα στοιχείο από τη λίστα.

fruits = ['πορτοκάλι', 'μήλο', 'αχλάδι']
for x in fruits:
	if(x != 'μήλο'):
		continue
	print(x)
	break
μήλο	

Η εντολή pass

Η εντολή που δεν κάνει τίποτα. Απλά την εισάγουμε σε σημεία στα οποία πρόκειται να εισαχθούν κανονικές εντολές.

fruits = ['πορτοκάλι', 'μήλο', 'αχλάδι']
for x in fruits:
	if(x != 'μήλο'):
		pass
		continue
	print(x)
	break
μήλο	

Βρόχοι σε ένθεση (nested loops)

Μπορούμε να έχουμε συνδυασμούς βρόχων σε ένθεση.

Στο παρακάτω παράδειγμα βρίσκεται το κοινό ή κοινά φρούτα από τις δύο λίστες. Κάθε στοιχείο της πρώτης λίστας συγκρίνεται με το κάθε στοιχείο της δεύτερης λίστας.

for x in ['πορτοκάλι', 'μήλο', 'αχλάδι']:
	for y in ['ροδάκινο', 'μήλο', 'βερύκοκο', 'πεπόνι']:
		if(x == y):
			print(x)
μήλο

Μπορούμε να έχουμε σε ένθεση διαφορετικούς τύπους βρόχου όπως for μέσα σε while ή while μέσα σε for. Επίσης μπορούμε να έχουμε πολλαπλούς βρόχους σε ένθεση.