Όπως αναφέραμε σε προηγούμενο κεφάλαιο χρησιμοποιούμε την Σύνθετη Δομή Επιλογής όταν θέλουμε να επιλέξουμε ένα μονοπάτι από τα δύο (2) που προσφέρονται. Επιλέγοντας το ένα προσπερνάμε ή απορρίπτουμε το άλλο υποχρεωτικά. Είναι ένα «στημένο» δίλημμα.
Π.χ.
«Θέλετε το φως ανοιχτό ή κλειστό;»
Αν «Ναι» τότε να είναι ανοιχτό το φως
Αλλιώς να είναι σβηστό το φως
Ακόμη ένα παράδειγμα,
«Επιλέγετε κορώνα ή γράμματα;»
Αν «Κορώνα» τότε εντολές1
Αλλιώςεντολές2
Συντακτικό / Μορφή Python Σύνθετης Δομής Επιλογής
Παράδειγμα - Έλεγχος αν ένας αριθμός είναι θετικός ή μη
num = int( input("Please give number:") )
if num > 0:
print("Positive number")
else:
print("Zero or Negative number")
print = display
Ας εκτελέσουμε το παραπάνω πρόγραμμα με τιμή num = -10
Στην γραμμή 3 ελέγχεται η συνθήκη και τελικά διαπιστώνεται ότι δεν πληρείται
Η γραμμή 4 προσπερνάται διότι βγήκε Ψευδής η συνθήκη στην γραμμή 3
Αυτομάτως εκετελούνται οι γραμμές 5 και 6
Ας εκτελέσουμε τον ίδιο κώδικα αλλά με τιμή θετική αυτή τη φορά, num = 23
Στην γραμμή 3 ελέγχεται η συνθήκη και τελικά διαπιστώνεται ότι πληρείται
Εκετελείται η εντολή της γραμμής 4 εφόσον πέρασε τον έλεγχο στην γραμμή 3
Αυτομάτως προσπερνούνται οι γραμμές 5 και 6 εφόσον εκτελέστηκαν οι γραμμές 3 και 4.
Παράδειγμα - Διπλή Ζαριά 🎲
Το παρακάτω τμήμα Python ελέγχει και εμφανίζει κατάλληλο μήνυμα αν μία ζαριά είναι διπλή. Δηλαδή αν το αποτέλεσμα του πρώτου ζαριού είναι ίσο με του δεύτερου.
import random
z1 = random.randint(1,6)
z2 = random.randint(1,6)
print(f"ζάρι1: {z1} - ζάρι2: {z2}")
if z1 == z2:
print("Διπλή Ζαριά")
else:
print("Δεν είναι διπλή ζαριά")
print = display
⚙️Άσκηση - Έλεγχος αν μπορεί κάποιος να ψηφίσει ή όχι 📩
Αντικαταστήστε το κενό ____1____ με την κατάλληλη συνθήκη ώστε να ελέγχει αν ένα άτομο με ηλικία age μπορεί να ψηφίσει στην χώρα του όπου έχει θέσει όριο ηλικίας ίσο ή μεγαλύτερο από 17 έτη.
Θεωρήστε την μεταβλητή age δεδομένη.
######## ignore few lines below #########
import random #
age = random.randint(1,100) #
print(f"Ηλικία:{age} , Όριο:17") #
######## ignore lines above #############
if ___1___ :
print('Δικαιούται να ψηφίσει')
else:
print('Δεν δικαιούται να ψηφίσει')
print = display
🏠Άσκηση - «Καλός» Αριθμός
Αντικαταστήστε το κενό ____1____ με κατάλληλη συνθήκη ώστε να ελέγχει και να εμφανίζει κατάλληλο μήνυμα αν ένας τυχαίος δεδομένος αριθμός num είναι «Καλός» ή όχι. «Καλός» αριθμός είναι ένας αριθμός όταν ισχύουν οι εξής προϋποθέσεις:
μικρότερος του 100
δεν είναι ίσος με 21
δεν είναι ίσος με 22
📧Στείλτε screenshot ή copy&paste τον κώδικα στο emailμου.
import random
num = random.randint(1,250)
print(f"num= {num}")
if ___1___ :
print(f"Ο {num} είναι Καλός αριθμός")
else:
print(f"Ο {num} δεν είναι Καλός αριθμός")
print = display
Παράδειγμα - Ποστοστό συμμετοχών για εκδρομή (75%)
Το παρακάτω τμήμα Python υπολογίζει αν μία Τάξη 50 μαθητών έχει το απαραίτητο ποσοστό συμμετοχών (75% και άνω) για πάει την εκδρομή που σχεδιάζει.
import random
students = random.randint(1,50)
print(f"Συμμετοχές: {students}")
percent = students / 50 * 100
print(f"{percent}%")
if percent >= 75 :
print(f"Αρκετές συμμετοχές!")
else:
print(f"Δυστυχώς δεν αρκούν οι συμμετοχές!")
print = display
Παράδειγμα - Ποστοστό κάλυψης πρασίνου μιας πόλεως 🌳
Το παρακάτω τμήμα Python υπολογίζει αν μία πόλη 70000 τ.μ.είναι θεωρείται «πράσινη» ή όχι. «Πράσινη» θεωρείται μία πόλη αν καλύπτεται από πράσινο άνω του 20% της έκτασής της.
import random
prasino = random.randint(1000,70000)
print(f"Πράσινο: {prasino} τ.μ.")
percent = prasino / 70000 * 100
print(f"{round(percent,2)}%")
if percent > 20 :
print(f"Πράσινη πόλη!")
else:
print(f"Δυστυχώς δεν θεωρείται πράσινη πόλη!")
print = display
⚙️Άσκηση - Σημαντική Εστία Μόλυνσης
Το παρακάτω τμήμα Python υπολογίζει αν μία πόλη 6000 κατοίκων έχει σημαντική εστία μόλυνσης για COVID19. Αν το 20% και άνω των κατοίκων είναι μολυνσμένοι τότε έχει σημαντική εστία μόλυνσης.
######## ignore few lines below #########
import random #
effected = random.randint(100,6000) #
print(f"Μολυνσμένοι: {effected}") #
######## ignore lines above #############
percent = ___1___
print(f"{percent}%")
if ___2___ :
print(f"Σημαντική εστία μόλυνσης!")
else:
print(f"Δεν αποτελεί σημαντική εστία μόλυνσης.")
print = display
⚙️Άσκηση - Πληρότητα Καφετέριας
Το παρακάτω τμήμα Python υπολογίζει αν μία μία καφετέρια είναι πλήρως γεμάτη ή όχι. Αν το πσοσοστό πληρότητάς της είναι 100% τότε είναι πλήρως γεμάτη αλλιώς χωράει και άλλους πελάτες.
Θεωρήστε ότι η χωρητικότητα της καφετέριας είναι δεδομένη ως μεταβλητή max.
import random
orio = random.randint(100,600)
######## ignore few lines below ######################
pelates = random.randint(1,orio) #
print(f"Πελάτες: {pelates} 🙎🏻♂️") #
print(f"Μέγιστη Χωρητικότητα: {orio} 🪑") #
######## ignore lines above ##########################
percent = ___1___
print(f"{round(percent,2)}%")
if ___2___ :
print(f"Πλήρως γεμάτη καφετέρια!")
else:
print(f"Χωράει και άλλους πελάτες.")
print = display
Παράδειγμα - Έλεγχος αν ο μέσος όρος είναι μεγαλύτερος από 10
Το παρακάτω τμήμα Python υπολογίζει αν ο μέσος όρος τριών μεταβλητών a, b , c είναι μεγαλύτερος από την τιμή 10.
import random
a = random.randint(1,20)
b = random.randint(1,20)
c = random.randint(1,20)
print(f"a: {a} , b: {b}, c: {c}")
mesos = (a+b+c)/3
print(f"mesos= {mesos}")
if mesos > 10 :
print(f"Μεγαλύτερος από 10")
else:
print(f"Μικρότερος ή ίσος με 10")
print = display
⚙️Άσκηση - Έλεγχος αν ο μέσος όρος είναι ανάμεσα στο διάστημα [5,9]
Να αντικαταστήσετε τα κενά ___1___ και ___2___ στο παρακάτω τμήμα Python ώστε να υπολογίζει τον μέσο όρο των τεσσάρων μεταβλητών a, b , c και d και να ελέγχει αν είναι ανάμεσα στο διάστημα [5,9].
import random
a = random.randint(1,20)
b = random.randint(1,20)
c = random.randint(1,20)
d = random.randint(1,20)
print(f"a: {a} , b: {b}, c: {c}, d: {d}")
mesos = ___1___
print(f"mesos= {mesos}")
if ___2___ :
print(f"Ανάμεσα στο διάστημα [5,9]")
else:
print(f"Εκτός του διαστήματος [5,9]")
print = display
⚙️Άσκηση - Έλεγχος αν ο μέσος όρος είναι διψήφιος αριθμός
Να αντικαταστήσετε τα κενά ___1___ και ___2___ στο παρακάτω τμήμα Python ώστε να υπολογίζει τον μέσο όρο των τεσσάρων μεταβλητών a, b , c και d και να ελέγχει αν είναι διψήφιος αριθμός.
import random
a = random.randint(1,20)
b = random.randint(1,20)
c = random.randint(1,20)
d = random.randint(1,20)
print(f"a: {a} , b: {b}, c: {c}, d: {d}")
mesos = ___1___
print(f"mesos= {mesos}")
if ___2___ :
print(f"Ο Μέσος όρος είναι Διψήφιος αριθμός")
else:
print(f"Ο Μέσος όρος ΔΕΝ είναι Διψήφιος αριθμός")
print = display
⚙️Άσκηση - Έλεγχος αν ο μέσος όρος είναι τριψήφιος αριθμός
Να αντικαταστήσετε τα κενά ___1___ και ___2___ στο παρακάτω τμήμα Python ώστε να υπολογίζει τον μέσο όρο των τεσσάρων μεταβλητών a, b , c και d και να ελέγχει αν είναι τριψήφιος αριθμός.
import random
a = random.randint(1,20)
b = random.randint(1,20)
c = random.randint(1,20)
d = random.randint(1,20)
print(f"a: {a} , b: {b}, c: {c}, d: {d}")
mesos = ___1___
print(f"mesos= {mesos}")
if ___2___ :
print(f"Ο Μέσος όρος είναι Τριψήφιος αριθμός")
else:
print(f"Ο Μέσος όρος ΔΕΝ είναι Τριψήφιος αριθμός")
print = display
Παράδειγμα - Κορώνα ή Γράμματα; 🪙
Το παρακάτω τμήμα Python ζητάει από τον χρήστη το ποντάρισμά του «κ» ή «γ» ύστερα εμφανίζει κατάλληλο μήνυμα αν κέρδισε ή όχι.
######## ignore few lines below #####################
import random #
result = random.choice(['Κορώνα','Γράμματα']) #
print(f"Έτυχε: {result}") #
######## ignore few lines below #####################
bet = input("«Κορώνα» ή «Γράμματα»;")
print(f"bet: {bet}")
if bet == result :
print(f"Κερδίσατε!")
else:
print(f"Δυστυχώς χάσατε!")
print = display
Αντικαταστήστε τα κενά ____1____ , ____2____ και ____3____ με κατάλληλες εντολές ή συνθήκες ώστε να υπολογίζει πόσα λεωφορεία busses χρειάζονται για να μεταφέρουν students μαθητές.
Θεωρήστε ότι η χωρητικότητα ενός λεωφορείου είναι 50 ατόμων.
Επίσης, θεωρήστε την μεταβλητή students δεδομένη.
######## ignore few lines below ####################################
import random #
students = random.choice([49,50,55,100,101,150,151,200,251]) #
######## ignore lines above ########################################
if ___1___ :
busses = ___2___
else:
busses = ___3___
print(f"{busses} 🚌 για → {students}🧒")
print = display