PYTHON - ΕΝΟΤΗΤΑ 9 – The if - else Statement
Στην προηγούμενη
ενότητα προσθέσαμε την ικανότητα στο
πρόγραμμα μας να μπορεί να παίρνει απλές
αποφάσεις με βάση το αποτέλεσμα κάποιας
συνθήκης που έχουμε ορίσει.
Συνήθως, θέλουμε να
υπάρχει μια αλληλουχία και συσχέτιση
μεταξύ των if statements. Αυτό
πρακτικά σημαίνει ότι θέλουμε τα if
statements να συνδέονται με τέτοιο τρόπο
ώστε όταν σε ένα από αυτά αληθεύει η
συνθήκη, τότε να τρέξει ο κώδικας μόνο
του συγκεκριμένου if και
να αγνοηθούν τα υπόλοιπα. Για να το
καταλάβουμε καλύτερα, ας δούμε ένα
παράδειγμα, που είναι αυτό που τρέξαμε
στην προηγούμενη ενότητα με την προσθήκη
του else.
Το πρόγραμμα μας λοιπόν
δέχεται τρία διαφορετικά inputs
από τον χρήστη και αφού υπολογίσει
τον μέσο όρο, εκτυπώνει ένα μήνυμα το
οποίο απλά αναφέρει ποιο ήταν το score.
Αμέσως μετά ξεκινάει μια σειρά
ελέγχων για το αν το average είναι
μικρότερο, ίσο ή μεγαλύτερο της HIGH_SCORE
μεταβλητής.
Ο έλεγχος ξεκινάει με
το if όπως ακριβώς το έχουμε
ήδη δει στην προηγούμενη ενότητα. Αλλά
αμέσως μετά δεν θέλουμε να ξεκινήσουμε
ένα καινούργιο if αλλά να
συνεχίσουμε τον έλεγχο μέσα από αυτό
το block κώδικα. Για να
δημιουργήσουμε έναν ή περισσότερους
ακόμα ελέγχους απλά χρειάζεται να
ξεκινάμε με το elif (που
είναι συντόμευση του else if)
και αμέσως μετά την συνθήκη που
θέλουμε. Οπότε στο δικό μας παράδειγμα,
το if ελέγχει αν το average
είναι μεγαλύτερο του HIGH_SCORE
ενώ το elif ελέγχει αν
είναι ίσα. Αν κάποιος από τους δύο
ελέγχους επαληθευόταν τότε η Python
δεν θα συνέχιζε άλλον έλεγχο. Το
πρόγραμμα θα έβγαινε έξω από αυτό το
σύμπλεγμα των ελέγχων και θα συνέχιζε
με τον υπόλοιπο κώδικα.
Επειδή όμως, για τα
inputs που δώσαμε, δεν ισχύει
ούτε η πρώτη συνθήκη αλλά ούτε και η
δεύτερη, πρέπει να δώσουμε ένα εναλλακτικό
μονοπάτι εκτέλεσης του κώδικα για όλες
τις άλλες περιπτώσεις για τις οποίες
δεν έχουμε ζητήσει να γίνει κάποιος
έλεγχος. Αυτή είναι η δουλειά του else
σαν τελευταίος έλεγχος – να καλύψει
όλες τις υπόλοιπες περιπτώσεις για την
οποίες εμείς δεν έχουμε γράψει κάποιο
if. Το πρόγραμμα μας λοιπόν
εκτελεί τα print functions που
βρίσκονται μέσα στο else και
επειδή δεν υπάρχει κάποιος άλλος κώδικας
στο πρόγραμμα μας, η εκτέλεση του
προγράμματος τερματίζει εδώ.
Πριν κλείσουμε αυτή
την ενότητα, αξίζει να επισημάνουμε το
γεγονός ότι η Python χρησιμοποιεί
indentation για να καταλαβαίνει ποιος κώδικας
ανήκει που. Αν προσέξετε καλύτερα στο
πρόγραμμα μας, θα δείτε ότι τα print
statements έχουν tab κενό
από την αρχή της γραμμής. Αν δεν το
αφήσετε αυτό το κενό, το IDE
σας (στην δική μου περίπτωση είναι
το eclipse) θα κοκκινίσει την
γραμμή σαν λάθος και θα σας παρουσιάσει
ένα μήνυμα που εξηγεί πως δεν έχετε
κάνει σωστή χρήση του indentation. Αυτό δεν
ισχύει μόνο για τα if statements
αλλά γενικότερα για όλη την δομή
της Python. Θα το συναντήσουμε
λίγο αργότερα και στις μεθόδους αλλά
και στις κλάσεις.
Μιχάλης Κασάπογλου