Δομή Επιλογής ΙΙI

Εντολή if elif ... else

Λειτουργία

Αν η συνθήκη1 είναι Αληθής, εκτελούνται οι εντολές του 1ου μπλοκ, αν είναι Ψευδής, ελέγχει την 2η συνθήκη.

Αν η 2η συνθήκη βγει Αληθής, εκτελεί τις εντολές του 2ου μπλοκ εντολών,

Aν είναι καιαυτή Ψευδής τότε εκτελούνται οι εντολές του 3ου μπλοκ εντολών

Μπορούμε να έχουμε πολλαπλά elif

Το else δεν είναι υποχρεωτικό

Παράδειγμα 1

a = int(input("Δώσε ένα ακέραιο αριθμό"))
if (a > 0):
    print("Θετικός")
elif (a < 0):
    print("Αρνητικός")
else:
    print("Μηδέν")

Παράδειγμα 2

age = int(input("Πόσο χρονών είσαι?"))
if (age < 12):
    print("Παιδί")
elif (age < 18):
    print("Εφηβος")
elif (age < 65):
    print("Ενήλικας")
else:
    print("Συνταξιούχος")

Δραστηριότητα 1

Γράψτε ένα πρόγραμμα σε γλώσσα Python το οποίο

  1. Στην αρχή θα εμφανίζει το μήνυμα "Χαρακτηρισμός βαθμού"
  2. Το πρόγραμμα θα ζητά από τον χρήστη να δώσει το βαθμό ενός μαθητή και θα το αποθηκεύει σε μεταβλητή π.χ. vathmos.
  3. Αν o βαθμός είναι μεγαλύτερος του 18 θα εμφανίζει το μήνυμα "ΑΡΙΣΤΑ"
  4. Αλλιώς Αν o βαθμός είναι μεγαλύτερος του 16 θα εμφανίζει το μήνυμα "ΠΟΛΥ ΚΑΛΑ"
  5. Αλλιώς Αν o βαθμός είναι μεγαλύτερος του 14 θα εμφανίζει το μήνυμα "ΚΑΛΑ"
  6. Αλλιώς Αν o βαθμός είναι μεγαλύτερος του 9 θα εμφανίζει το μήνυμα "ΜΕΤΡΙΑ"
  7. Αλλιώς θα εμφανίζει το μήνυμα "ΑΝΕΠΑΡΚΗΣ"
  8. Στο τέλος το πρόγραμμα θα εμφανίζει το μήνυμα "ΓΕΙΑ ΣΟΥ"

Δραστηριότητα 2

Γράψτε ένα πρόγραμμα σε γλώσσα Python το οποίο

  1. Στην αρχή θα εμφανίζει το μήνυμα "Υπολογισμός Κόστους Internet"
  2. Το πρόγραμμα θα ζητά από τον χρήστη να δώσει τη μηνιαία κατανάλωση σε GBytes για τη σύνδεση internet στο κινητό του και θα το αποθηκεύει σε μεταβλητήπ.χ. gigabytes.
  3. To πρόγραμμα θα πρέπει να υπολογίζει το τελικό κόστος σύμφωνα με τον πίνακα που φαίνεται δεξιά. Χρησιμοποιήσετε μια δομή if elif. Θα χρειαστείτε επίσης και μια μεταβλητή kostos που θα παίρνει τιμή ανάλογα με τη συνθήκη.
  4. Στο τέλος το πρόγραμμα θα εμφανίζει το τελικό κόστος για την κατανάλωση που δόθηκε π.χ.
"Το κόστος για κατανάλωση 16 GBytes ειναι 32 Ευρώ"