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.

3.2 Η Δήλωση if στην Python

Η δήλωση if στην Python χρησιμοποιείται για να εκτελέσει ένα τμήμα κώδικα μόνο αν μια συγκεκριμένη συνθήκη είναι αληθής (True). Η βασική μορφή της δήλωσης if είναι:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
if συνθήκη:
# Κώδικας που εκτελείται αν η συνθήκη είναι αληθής
if συνθήκη: # Κώδικας που εκτελείται αν η συνθήκη είναι αληθής
if συνθήκη:
    # Κώδικας που εκτελείται αν η συνθήκη είναι αληθής

Αν η συνθήκη είναι αληθής, ο κώδικας που βρίσκεται μέσα στον εμφωλευμένο μπλοκ εκτελείται. Αν η συνθήκη είναι ψευδής (False), ο κώδικας μέσα στον μπλοκ της if παραλείπεται.

Παράδειγμα:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
x = 10
y = 20
if x < y:
print("x είναι μικρότερο από y")
x = 10 y = 20 if x < y: print("x είναι μικρότερο από y")
x = 10
y = 20

if x < y:
    print("x είναι μικρότερο από y")

Σε αυτό το παράδειγμα, η if ελέγχει αν η τιμή της x είναι μικρότερη από την τιμή της y. Επειδή αυτό είναι αληθές (10 είναι μικρότερο από 20), η εντολή print() εκτελείται.

Η δήλωση if μπορεί επίσης να συνδυαστεί με else και elif (συντομογραφία του “else if”) για πιο περίπλοκες λογικές δομές και πολλαπλές συνθήκες.

Εσοχή Συνόλου Εντολών (Suite Indentation) στην Python

Η εσοχή (indentation) των συνόλων εντολών (suites) στην Python είναι απαραίτητη και αποτελεί μέρος της σύνταξης της γλώσσας. Εάν οι εντολές ενός μπλοκ δεν έχουν τη σωστή εσοχή, προκύπτει σφάλμα σύνταξης (IndentationError).

Παράδειγμα 1: Σφάλμα Εσοχής λόγω Απουσίας Εσοχής

Σφάλμα εσοχής συμβαίνει όταν οι εντολές που ακολουθούν μια δήλωση όπως η if, for, while, def, class κ.ά., δεν έχουν καθόλου εσοχή:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
if True:
print("Αυτό θα προκαλέσει IndentationError.")
if True: print("Αυτό θα προκαλέσει IndentationError.")
if True:
print("Αυτό θα προκαλέσει IndentationError.")

Παράδειγμα 2: Σφάλμα Εσοχής λόγω Ανισομερούς Εσοχής

Ένα IndentationError συμβαίνει επίσης αν έχετε περισσότερες από μία εντολές σε ένα μπλοκ και αυτές οι εντολές δεν έχουν την ίδια εσοχή:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
if True:
print("Αυτή η γραμμή έχει σωστή εσοχή.")
print("Αυτή η γραμμή έχει λάθος εσοχή και θα προκαλέσει IndentationError.")
if True: print("Αυτή η γραμμή έχει σωστή εσοχή.") print("Αυτή η γραμμή έχει λάθος εσοχή και θα προκαλέσει IndentationError.")
if True:
    print("Αυτή η γραμμή έχει σωστή εσοχή.")
  print("Αυτή η γραμμή έχει λάθος εσοχή και θα προκαλέσει IndentationError.")

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

Κάθε εκφραση μπορεί να ερμηνευτεί είτε ως True είτε ως False

Στην Python, μπορείτε να βασίσετε αποφάσεις σε οποιαδήποτε έκφραση, καθώς κάθε έκφραση μπορεί να ερμηνευτεί ως λογική τιμή True ή False. Κατά κανόνα, οποιαδήποτε μη μηδενική τιμή (είτε ακέραια, είτε αριθμός κινητής υποδιαστολής, είτε άλλος τύπος) ερμηνεύεται ως True. Αντίθετα, ο αριθμός μηδέν (0) ερμηνεύεται ως False.

Παραδείγματα:

  1. Έκφραση με μη μηδενική τιμή:
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
if 3:
print("Μη μηδενικός αριθμός είναι True.")
if 3: print("Μη μηδενικός αριθμός είναι True.")
   if 3:
       print("Μη μηδενικός αριθμός είναι True.")

Εδώ, ο αριθμός 3 ερμηνεύεται ως True, επομένως η εντολή print θα εκτελεστεί.

  1. Έκφραση με τον αριθμό μηδέν:
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
if 0:
print("Αυτό δεν θα εκτελεστεί.")
if 0: print("Αυτό δεν θα εκτελεστεί.")
   if 0:
       print("Αυτό δεν θα εκτελεστεί.")

Σε αυτή την περίπτωση, ο αριθμός 0 ερμηνεύεται ως False, και έτσι η εντολή print δεν θα εκτελεστεί.

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

Σύγχυση των Τελεστών == και =

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

Για παράδειγμα:

  1. Σωστή Χρήση του = για Ανάθεση:
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
grade = 85 # Αναθέτει την τιμή 85 στην μεταβλητή grade
grade = 85 # Αναθέτει την τιμή 85 στην μεταβλητή grade
   grade = 85  # Αναθέτει την τιμή 85 στην μεταβλητή grade

Εδώ, η μεταβλητή grade παίρνει την τιμή 85.

  1. Λάθος Χρήση του == αντί για =:
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
grade == 85 # Ελέγχει αν η μεταβλητή grade είναι ίση με 85
grade == 85 # Ελέγχει αν η μεταβλητή grade είναι ίση με 85
   grade == 85  # Ελέγχει αν η μεταβλητή grade είναι ίση με 85

Σε αυτή την περίπτωση, το grade == 85 απλώς εκτελεί μια σύγκριση και επιστρέφει True ή False, ανάλογα με το αν η grade είναι ίση με 85 ή όχι. Καμία τιμή δεν ανατίθεται στη μεταβλητή grade. Εάν η μεταβλητή grade δεν έχει προηγουμένως οριστεί, αυτό θα προκαλέσει ένα NameError.

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

Οι Δηλώσεις if…else και if…elif…else στην Python

Οι δηλώσεις if…else και if…elif…else επιτρέπουν στην Python να εκτελέσει διαφορετικούς μπλοκ κώδικα ανάλογα με το αποτέλεσμα μιας ή περισσότερων συνθηκών.

Δήλωση if…else

Η δήλωση if…else ελέγχει μια συνθήκη και εκτελεί τον πρώτο μπλοκ κώδικα αν η συνθήκη είναι αληθής (True) και το δεύτερο μπλοκ αν η συνθήκη είναι ψευδής (False).

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
x = 10
if x > 5:
print("x είναι μεγαλύτερο από 5")
else:
print("x δεν είναι μεγαλύτερο από 5")
x = 10 if x > 5: print("x είναι μεγαλύτερο από 5") else: print("x δεν είναι μεγαλύτερο από 5")
x = 10

if x > 5:
    print("x είναι μεγαλύτερο από 5")
else:
    print("x δεν είναι μεγαλύτερο από 5")

Δήλωση if…elif…else

Η δήλωση if…elif…else παρέχει μια σειρά από συνθήκες για έλεγχο, επιτρέποντας πολλαπλές διακλαδώσεις. Εκτελείται ο κώδικας της πρώτης αληθούς συνθήκης. Αν καμία από τις elif συνθήκες δεν είναι αληθής, και υπάρχει else, τότε εκτελείται ο κώδικας της else.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
y = 20
if y < 10:
print("y είναι μικρότερο από 10")
elif y < 15:
print("y είναι μεγαλύτερο ή ίσο με 10 αλλά μικρότερο από 15")
else:
print("y είναι μεγαλύτερο ή ίσο με 15")
y = 20 if y < 10: print("y είναι μικρότερο από 10") elif y < 15: print("y είναι μεγαλύτερο ή ίσο με 10 αλλά μικρότερο από 15") else: print("y είναι μεγαλύτερο ή ίσο με 15")
y = 20

if y < 10:
    print("y είναι μικρότερο από 10")
elif y < 15:
    print("y είναι μεγαλύτερο ή ίσο με 10 αλλά μικρότερο από 15")
else:
    print("y είναι μεγαλύτερο ή ίσο με 15")

Στο παραπάνω παράδειγμα, η Python θα ελέγξει πρώτα αν το y είναι μικρότερο από 10. Αν αυτό δεν ισχύει, θα προχωρήσει στην επόμενη συνθήκη elif. Αν καμία από τις elif συνθήκες δεν ισχύει, τότε εκτελείται ο κώδικας στην else.

Πολλαπλές δηλώσεις σε ένα σύνολο εντολών (suite) στην python

Στην Python, μια σειρά από δηλώσεις που βρίσκονται μέσα σε έναν εμφωλευμένο μπλοκ (όπως μέσα σε δηλώσεις if, elif, else, for, while, κτλ.) αποκαλείται “σύνολο εντολών” ή “suite”. Μπορείτε να έχετε πολλαπλές δηλώσεις σε ένα μόνο suite, και όλες αυτές οι δηλώσεις πρέπει να έχουν την ίδια εσοχή για να θεωρούνται μέρος του ίδιου μπλοκ.

Παράδειγμα με πολλαπλές δηλώσεις σε ένα if suite:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
x = 10
if x > 5:
print("x είναι μεγαλύτερο από 5.")
print("Αυτό είναι ένα παράδειγμα πολλαπλών δηλώσεων σε ένα suite.")
y = x * 2
print("Το διπλάσιο του x είναι", y)
x = 10 if x > 5: print("x είναι μεγαλύτερο από 5.") print("Αυτό είναι ένα παράδειγμα πολλαπλών δηλώσεων σε ένα suite.") y = x * 2 print("Το διπλάσιο του x είναι", y)
x = 10

if x > 5:
    print("x είναι μεγαλύτερο από 5.")
    print("Αυτό είναι ένα παράδειγμα πολλαπλών δηλώσεων σε ένα suite.")
    y = x * 2
    print("Το διπλάσιο του x είναι", y)

Εδώ, όλες οι δηλώσεις μέσα στο μπλοκ της if εκτελούνται μόνο αν η συνθήκη x > 5 είναι αληθής. Όλες αυτές οι δηλώσεις πρέπει να έχουν την ίδια εσοχή για να θεωρούνται μέρος του ίδιου μπλοκ.

Η σωστή εσοχή είναι κρίσιμη στην Python και αποτελεί έναν τρόπο για να δηλώσετε ποιες δηλώσεις ελέγχονται από ποιες δομές ελέγχου της ροής (όπως if, for, while, κτλ.). Η ανομοιόμορφη ή λανθασμένη εσοχή μπορεί να οδηγήσει σε σφάλματα ή μπερδεμένη λογική στον κώδικα.

Το else είναι Προαιρετικό στην Python

Στην Python, η χρήση της δήλωσης else μετά από μια δήλωση if είναι προαιρετική. Η else προστίθεται σε μια δήλωση if για να εκτελέσει ένα μπλοκ κώδικα στην περίπτωση που η συνθήκη της if είναι ψευδής (False). Αν δεν υπάρχει ανάγκη να εκτελεστεί κάποια ενέργεια όταν η συνθήκη δεν είναι αληθής, τότε η else δεν είναι απαραίτητη.

Παράδειγμα χωρίς else

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
x = 5
if x > 10:
print("x είναι μεγαλύτερο από 10.")
# Δεν υπάρχει else εδώ
x = 5 if x > 10: print("x είναι μεγαλύτερο από 10.") # Δεν υπάρχει else εδώ
x = 5

if x > 10:
    print("x είναι μεγαλύτερο από 10.")
# Δεν υπάρχει else εδώ

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

Παράδειγμα με else

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
y = 20
if y < 15:
print("y είναι μικρότερο από 15.")
else:
print("y είναι μεγαλύτερο ή ίσο με 15.")
y = 20 if y < 15: print("y είναι μικρότερο από 15.") else: print("y είναι μεγαλύτερο ή ίσο με 15.")
y = 20

if y < 15:
    print("y είναι μικρότερο από 15.")
else:
    print("y είναι μεγαλύτερο ή ίσο με 15.")

Εδώ, η δήλωση else χρησιμοποιείται για να εκτυπωθεί μια διαφορετική φράση στην περίπτωση που η συνθήκη της if είναι ψευδής. Αυτό δείχνει πώς η else μπορεί να προσθέσει περισσότερη λειτουργικότητα στον κώδικα, αλλά δεν είναι απαραίτητη αν δεν υπάρχει ανάγκη για επιπλέον ενέργειες όταν η συνθήκη if δεν ισχύει.

Λογικά Σφάλματα στον Προγραμματισμό

Τα λογικά σφάλματα είναι είδος σφαλμάτων στον προγραμματισμό που συμβαίνουν όταν ένα πρόγραμμα δεν λειτουργεί όπως αναμενόταν λόγω ενός λάθους στη λογική ή στην υλοποίηση του αλγορίθμου. Αυτά τα σφάλματα είναι συχνά πιο δύσκολο να εντοπιστούν και να διορθωθούν επειδή το πρόγραμμα μπορεί να μην παρουσιάζει άμεσα σφάλματα σύνταξης ή εκτέλεσης (runtime errors). Αντίθετα, το πρόγραμμα τρέχει χωρίς να “κρασάρει”, αλλά δίνει λανθασμένα αποτελέσματα ή συμπεριφέρεται απροσδόκητα.

Παραδείγματα Λογικών Σφαλμάτων

  1. Λάθος Χρήση των Τελεστών:
    Η χρήση του λάθος τελεστή σε μια συνθήκη ή μια αριθμητική πράξη μπορεί να οδηγήσει σε λογικό σφάλμα.
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# Υπολογισμός του μέσου όρου
total = 100
count = 0
average = total / count # Διαίρεση με μηδέν οδηγεί σε λογικό σφάλμα
# Υπολογισμός του μέσου όρου total = 100 count = 0 average = total / count # Διαίρεση με μηδέν οδηγεί σε λογικό σφάλμα
   # Υπολογισμός του μέσου όρου
   total = 100
   count = 0
   average = total / count  # Διαίρεση με μηδέν οδηγεί σε λογικό σφάλμα
  1. Λάθος Σειρά Πράξεων:
    Η εκτέλεση πράξεων σε λάθος σειρά μπορεί να παράγει λανθασμένα αποτελέσματα.
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
x = 5
y = 10
# Λογικό λάθος: πρόσθεση πριν την εκθέτηση
result = x + y ** 2 # Θα έπρεπε να είναι: (x + y) ** 2
x = 5 y = 10 # Λογικό λάθος: πρόσθεση πριν την εκθέτηση result = x + y ** 2 # Θα έπρεπε να είναι: (x + y) ** 2
   x = 5
   y = 10
   # Λογικό λάθος: πρόσθεση πριν την εκθέτηση
   result = x + y ** 2  # Θα έπρεπε να είναι: (x + y) ** 2
  1. Λάθος Συνθήκες σε Δηλώσεις if/else:
    Η χρήση λάθος ή ανεπαρκών συνθηκών σε δηλώσεις ελέγχου ροής μπορεί να οδηγήσει σε ανεπιθύμητη συμπεριφορά.
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
score = 85
# Λογικό λάθος: η παρακάτω συνθήκη δεν ελέγχει για την περίπτωση score == 100
if score > 70:
print("Καλό αποτέλεσμα")
else:
print("Χρειάζεται βελτίωση")
score = 85 # Λογικό λάθος: η παρακάτω συνθήκη δεν ελέγχει για την περίπτωση score == 100 if score > 70: print("Καλό αποτέλεσμα") else: print("Χρειάζεται βελτίωση")
   score = 85
   # Λογικό λάθος: η παρακάτω συνθήκη δεν ελέγχει για την περίπτωση score == 100
   if score > 70:
       print("Καλό αποτέλεσμα")
   else:
       print("Χρειάζεται βελτίωση")

Για την αντιμετώπιση λογικών σφαλμάτων, είναι σημαντικό να γράφετε καθαρό και καλά ορ

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

10 Ιανουαρίου, 2024
top
error: Content is protected !!
Μετάβαση σε γραμμή εργαλείων