PYTHON - ΕΝΟΤΗΤΑ 9 – The if - else Statement

Στην προηγούμενη ενότητα προσθέσαμε την ικανότητα στο πρόγραμμα μας να μπορεί να παίρνει απλές αποφάσεις με βάση το αποτέλεσμα κάποιας συνθήκης που έχουμε ορίσει.
 Προσθέσαμε λοιπόν κάποιους ελέγχους που μέσω της if statement μπορούσαμε να ελέγξουμε αν θα εκτελέσουμε κάποιο συγκεκριμένο μέρος του κώδικα ή όχι. Σε αυτή την ενότητα θα αυξήσουμε λίγο περισσότερο την ικανότητα του 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. Θα το συναντήσουμε λίγο αργότερα και στις μεθόδους αλλά και στις κλάσεις.
 

Μιχάλης Κασάπογλου
 

Archive

Contact Form

Send