Customize Consent Preferences

We use cookies to help you navigate efficiently and perform certain functions. You will find detailed information about all cookies under each consent category below.

The cookies that are categorized as "Necessary" are stored on your browser as they are essential for enabling the basic functionalities of the site. ... 

Always Active

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

No cookies to display.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

No cookies to display.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

No cookies to display.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

No cookies to display.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

No cookies to display.

2.2 Η δομή επανάληψης for

Ο βρόχος “for” χρησιμοποιείται για τη διατροχική επανάληψη ενός αντικειμένου που περιέχει πολλά στοιχεία, όπως μια λίστα, ένα πλειάδιο, ένα λεξικό, ένα σύνολο ή μια συμβολοσειρά.

Με τον βρόχο “for” μπορούμε να εκτελέσουμε μια σειρά εντολών μία φορά για κάθε στοιχείο στο αντικείμενο που περνάμε στον βρόχο.

Ένα παράδειγμα:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
fruits = ["apple", "banana", "cherry"]
for x in fruits:
print(x)
fruits = ["apple", "banana", "cherry"] for x in fruits: print(x)
fruits = ["apple", "banana", "cherry"]
for x in fruits:
    print(x)

Η έξοδος θα είναι:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
apple
banana
cherry
apple banana cherry
apple
banana
cherry

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

Ο βρόχος “for” δεν απαιτεί την εκ των προτέρων ορισμένη μεταβλητή δείκτη.

Αυτό σημαίνει ότι δεν χρειάζεται να δηλώσουμε μια μεταβλητή που θα χρησιμοποιηθεί ως δείκτης στο στοιχείο του αντικειμένου που διατρέχεται ο βρόχος, αφού η Python ξέρει πώς να το κάνει μόνη της.

Ένα παράδειγμα:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
print(fruit)
fruits = ["apple", "banana", "cherry"] for fruit in fruits: print(fruit)
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    print(fruit)

Η έξοδος θα είναι η ίδια με πριν:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
apple
banana
cherry
apple banana cherry
apple
banana
cherry

Στο παραπάνω παράδειγμα, η Python αναλαμβάνει να διατρέξει τη λίστα “fruits” και να αντιστοιχίσει κάθε στοιχείο της στη μεταβλητή “fruit”. Κάθε φορά που εκτελείται η εντολή “print”, τυπώνεται το στοιχείο που βρίσκεται στη μεταβλητή “fruit”.

[adinserter block=”2″]

Οι συμβολοσειρές είναι επίσης αντικείμενα που μπορούν να διατρέξουν με τη χρήση του βρόχου “for”, καθώς περιέχουν μια ακολουθία από χαρακτήρες.

Ένα παράδειγμα:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
my_string = "Hello, World!"
for char in my_string:
print(char)
my_string = "Hello, World!" for char in my_string: print(char)
my_string = "Hello, World!"
for char in my_string:
    print(char)

Η έξοδος θα είναι η εξής:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
H
e
l
l
o
,
W
o
r
l
d
!
H e l l o , W o r l d !
H
e
l
l
o
,

W
o
r
l
d
!

Στο παραπάνω παράδειγμα, η Python διατρέχει τη συμβολοσειρά “my_string” και αντιστοιχίζει κάθε χαρακτήρα στη μεταβλητή “char”. Κάθε φορά που εκτελείται η εντολή “print”, τυπώνεται ο χαρακτήρας που βρίσκεται στη μεταβλητή “char”.

Με την εντολή “break” μπορούμε να σταματήσουμε τον βρόχο πριν ολοκληρωθεί η διάσχιση όλων των στοιχείων:

Ένα παράδειγμα:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
print(fruit)
if fruit == "banana":
break
fruits = ["apple", "banana", "cherry"] for fruit in fruits: print(fruit) if fruit == "banana": break
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    print(fruit)
    if fruit == "banana":
        break

Η έξοδος θα είναι η εξής:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
apple
banana
apple banana
apple
banana

Στο παραπάνω παράδειγμα, η Python διατρέχει τη λίστα “fruits” και αντιστοιχίζει κάθε στοιχείο στη μεταβλητή “fruit”. Κάθε φορά που εκτελείται η εντολή “print”, τυπώνεται το τρέχον στοιχείο της λίστας. Όταν φτάνουμε στο στοιχείο “banana”, εκτελείται η εντολή “break” και ο βρόχος διακόπτεται.

Με την εντολή “continue” μπορούμε να σταματήσουμε την τρέχουσα επανάληψη του βρόχου και να συνεχίσουμε με την επόμενη:

Ένα παράδειγμα:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
if fruit == "banana":
continue
print(fruit)
fruits = ["apple", "banana", "cherry"] for fruit in fruits: if fruit == "banana": continue print(fruit)
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    if fruit == "banana":
        continue
    print(fruit)

Η έξοδος θα είναι η εξής:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
apple
cherry
apple cherry
apple
cherry

Στο παραπάνω παράδειγμα, όταν η Python φτάσει στο στοιχείο “banana”, εκτελείται η εντολή “continue” και παραλείπει το στοιχείο αυτό από τον βρόχο. Συνεχίζει να διατρέχει τη λίστα και τυπώνει τα υπόλοιπα στοιχεία.

Για να επαναλάβουμε μια σειρά κώδικα για ένα συγκεκριμένο αριθμό φορών, μπορούμε να χρησιμοποιήσουμε τη συνάρτηση range().

[adinserter block=”3″]

Η συνάρτηση range() επιστρέφει μια ακολουθία αριθμών, ξεκινώντας από το 0 αν δεν δηλώσουμε διαφορετικά, αυξάνονται κατά 1 (εκτός αν δηλώσουμε άλλο βήμα) και σταματάνε σε έναν καθορισμένο αριθμό.

Μερικά παραδείγματα:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# Επανάληψη 5 φορές
for i in range(5):
print(i)
# Επανάληψη 2 έως 5
for i in range(2, 6):
print(i)
# Επανάληψη αυξάνοντας κατά 2
for i in range(0, 10, 2):
print(i)
# Επανάληψη 5 φορές for i in range(5): print(i) # Επανάληψη 2 έως 5 for i in range(2, 6): print(i) # Επανάληψη αυξάνοντας κατά 2 for i in range(0, 10, 2): print(i)
# Επανάληψη 5 φορές
for i in range(5):
    print(i)

# Επανάληψη 2 έως 5
for i in range(2, 6):
    print(i)

# Επανάληψη αυξάνοντας κατά 2
for i in range(0, 10, 2):
    print(i)

Η έξοδος θα είναι η εξής:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
0
1
2
3
4
2
3
4
5
0
2
4
6
8
0 1 2 3 4 2 3 4 5 0 2 4 6 8
0
1
2
3
4
2
3
4
5
0
2
4
6
8

Στο πρώτο παράδειγμα, η range() επιστρέφει τους αριθμούς 0, 1, 2, 3, 4 και η Python εκτελεί την εντολή print() για κάθε έναν από αυτούς.

Στο δεύτερο παράδειγμα, η range() επιστρέφει τους αριθμούς 2, 3, 4, 5 και η Python εκτελεί την εντολή print() για κάθε έναν από αυτούς.

Στο τρίτο παράδειγμα, η range() επιστρέφει τους αριθμούς 0, 2, 4, 6, 8 και η Python εκτελεί την εντολή print() για κάθε έναν από αυτούς.

Η συνάρτηση range() έχει ως προεπιλεγμένη τιμή το 0 ως αρχική τιμή, ωστόσο είναι δυνατό να καθοριστεί η αρχική τιμή προσθέτοντας ένα παράμετρο: range(2, 6), που σημαίνει τιμές από το 2 έως το 6 (αλλά όχι συμπεριλαμβανομένου του 6):

Παράδειγμα:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
for x in range(2, 6):
print(x)
for x in range(2, 6): print(x)
for x in range(2, 6):
  print(x)

Αποτέλεσμα:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
2
3
4
5
2 3 4 5
2
3
4
5

Η συνάρτηση range() έχει ως προεπιλεγμένη τιμή το 1 ως βήμα αύξησης, ωστόσο είναι δυνατό να καθοριστεί το βήμα προσθέτοντας μια τρίτη παράμετρο: range(2, 30, 3), που σημαίνει τιμές από το 2 έως το 30, αυξάνοντας τον αριθμό κατά 3 κάθε φορά:

Παράδειγμα:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
for x in range(2, 30, 3):
print(x)
for x in range(2, 30, 3): print(x)
for x in range(2, 30, 3):
  print(x)

Αποτέλεσμα:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
2
5
8
11
14
17
20
23
26
29
2 5 8 11 14 17 20 23 26 29
2
5
8
11
14
17
20
23
26
29

Το λεκτικό “else” σε ένα for loop καθορίζει ένα τμήμα κώδικα που θα εκτελεστεί όταν η επανάληψη ολοκληρωθεί. Στην ουσία, αυτός ο κώδικας εκτελείται ακόμη και αν η επανάληψη έχει διακοπεί πρόωρα από έναν βρόχο break. Αντίθετα, αν η επανάληψη ολοκληρωθεί κανονικά, τότε ο κώδικας του else θα εκτελεστεί μετά το τέλος της επανάληψης.

Παράδειγμα:

Να εμφανιστούν όλα τα αριθμά από τη λίστα με τους παραπάνω από 5, και στο τέλος να εμφανιστεί το μήνυμα “Τέλος λίστας”.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
numbers = [2, 3, 5, 8, 10]
for x in numbers:
if x <= 5:
continue
print(x)
else:
print("Τέλος λίστας")
numbers = [2, 3, 5, 8, 10] for x in numbers: if x <= 5: continue print(x) else: print("Τέλος λίστας")
numbers = [2, 3, 5, 8, 10]
for x in numbers:
  if x <= 5:
    continue
  print(x)
else:
  print("Τέλος λίστας")

Αυτό θα εμφανίσει:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
8
10
Τέλος λίστας
8 10 Τέλος λίστας
8
10
Τέλος λίστας

Παράδειγμα: Εκτυπώστε όλους τους αριθμούς από το 8 έως το 13, και εκτυπώστε ένα μήνυμα όταν ο βρόχος έχει τελειώσει.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
for x in range(8, 14):
print(x)
else:
print("The loop has ended!")
for x in range(8, 14): print(x) else: print("The loop has ended!")
for x in range(8, 14):
  print(x)
else:
  print("The loop has ended!")

Το αποτέλεσμα θα είναι:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
8
9
10
11
12
13
The loop has ended!
8 9 10 11 12 13 The loop has ended!
8
9
10
11
12
13
The loop has ended!

Στο παρακάτω παράδειγμα, όταν η μεταβλητή x γίνει ίση με 9, ο κώδικας θα σταματήσει την εκτέλεση της επανάληψης και θα εκτυπωθεί το μήνυμα “Loop has been broken” μετά από την επανάληψη. Αυτό συμβαίνει γιατί το break statement διακόπτει την εκτέλεση της επανάληψης όταν η συνθήκη if είναι αληθής και η τιμή της μεταβλητής x είναι ίση με 9. Σε αντίθετη περίπτωση, ολοκληρώνεται η εκτέλεση της επανάληψης και εκτελείται το else block, εκτυπώνοντας το μήνυμα “Loop completed normally”.

[adinserter block=”4″]

Παράδειγμα:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
for x in range(8, 14):
print(x)
if x == 9:
break
else:
print("Loop completed normally")
print("Loop has been broken")
for x in range(8, 14): print(x) if x == 9: break else: print("Loop completed normally") print("Loop has been broken")
for x in range(8, 14):
    print(x)
    if x == 9:
        break
else:
    print("Loop completed normally")
print("Loop has been broken")

Αποτέλεσμα:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
8
9
Loop has been broken
8 9 Loop has been broken
8
9
Loop has been broken

Μια εμφωλευμένη επανάληψη είναι μια επανάληψη μέσα σε μια άλλη επανάληψη. Η “εσωτερική επανάληψη” θα εκτελεστεί μια φορά για κάθε επανάληψη της “εξωτερικής επανάληψης”. Παράδειγμα στην Python:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
fruits = ["apple", "banana", "cherry"]
adj = ["red", "big", "tasty"]
for x in fruits:
for y in adj:
print(y, x)
fruits = ["apple", "banana", "cherry"] adj = ["red", "big", "tasty"] for x in fruits: for y in adj: print(y, x)
fruits = ["apple", "banana", "cherry"]
adj = ["red", "big", "tasty"]

for x in fruits:
  for y in adj:
    print(y, x)

Αυτό το παράδειγμα θα εκτυπώσει τα εξής:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
red apple
big apple
tasty apple
red banana
big banana
tasty banana
red cherry
big cherry
tasty cherry
red apple big apple tasty apple red banana big banana tasty banana red cherry big cherry tasty cherry
red apple
big apple
tasty apple
red banana
big banana
tasty banana
red cherry
big cherry
tasty cherry

Οι for loops δεν μπορούν να είναι κενοί, αλλά αν για κάποιο λόγο έχετε ένα for loop χωρίς περιεχόμενο, βάλτε τη δήλωση pass για να αποφύγετε το να λάβετε ένα σφάλμα.

Παράδειγμα:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
fruits = ["apple", "banana", "cherry"]
for x in fruits:
pass
fruits = ["apple", "banana", "cherry"] for x in fruits: pass
fruits = ["apple", "banana", "cherry"]
for x in fruits:
  pass

Στο παραπάνω παράδειγμα, το loop θα εκτελεστεί κανονικά, αλλά δεν θα γίνει τίποτα καθώς η δήλωση pass δεν κάνει τίποτα.

Δωρεα μεσω Paypal

Για την κάλυψη αναγκών φιλοξενίας και δημιουργίας περιεχομένου.

κατηγοριες μαθηματων

Ιστορικο ενοτητων

top
error: Content is protected !!
Μετάβαση σε γραμμή εργαλείων