Εργασία με σημαίες στην Python
Σημαία - είναι μια ειδική μεταβλητή,
που μπορεί να πάρει μόνο δύο τιμές:
True ή False. Με τη βοήθεια
σημαίων μπορούμε να λύσουμε προβλήματα που ελέγχουν
την απουσία κάτι: για παράδειγμα, μπορούμε
να ελέγξουμε ότι σε μια λίστα δεν υπάρχει στοιχείο με
μια συγκεκριμένη τιμή.
Ας λύσουμε το ακόλουθο πρόβλημα: δίνεται μια λίστα
με αριθμούς, πρέπει να ελέγξουμε εάν όλα τα στοιχεία
σε αυτήν είναι θετικά. Για αυτό
θα ορίσουμε μια ειδική μεταβλητή flag,
που πριν από την έναρξη του βρόχου θα είναι αληθής. Και
όταν βρεθεί στον βρόχο ένας αρνητικός αριθμός,
θα αλλάξουμε την τιμή της σε False. Για
να μάθουμε το αποτέλεσμα του ελέγχου,
θα εκτυπώσουμε τη μεταβλητή flag μετά τον βρόχο
στην κονσόλα:
lst = [1, 2, 3, 4, 5]
flag = True
for el in lst:
if el < 0:
flag = False
print(flag) # θα εκτυπώσει True, αφού όλοι οι αριθμοί είναι θετικοί
Μια καλή πρακτική είναι η ανάθεση για τη
μεταβλητή με τη σημαία ενός ονόματος που αντικατοπτρίζει
τη δεδομένη συνθήκη. Ας μετονομάσουμε το flag
σε isAllPositive. Και για περισσότερη σαφήνεια
ας αλλάξουμε έναν αριθμό από τη λίστα σε αρνητικό:
lst = [1, 2, 3, -4, 5]
isAllPositive = True
for el in lst:
if el < 0:
isAllPositive = False
print(isAllPositive) # θα εκτυπώσει False, αφού υπάρχει αρνητικός αριθμός
Εάν στη λίστα που εξετάζουμε υπάρχουν πολλές τιμές
και χρειάζεται να σταματήσουμε τον βρόχο μετά από την ανίχνευση
του πρώτου αρνητικού αριθμού, τότε πρέπει
να εφαρμόσουμε την εντολή break:
for el in lst:
if el < 0:
isAllPositive = False
break
Όταν εργαζόμαστε με σημαίες, για να μάθουμε το αποτέλεσμα
της εκτέλεσης του βρόχου, μπορούμε να εκτυπώσουμε όχι την τιμή
της σημαίας, αλλά ένα αυθαίρετο μήνυμα με τη βοήθεια
ενός πρόσθετου if.
Ας ξαναγράψουμε το προηγούμενο παράδειγμα. Εάν
όλα τα στοιχεία είναι θετικά, ας
εκτυπωθεί το '+++', εάν όχι -
'---':
for el in lst:
if el < 0:
isAllPositive = False
break
if isAllPositive:
print('+++')
else:
print('---') # θα εκτυπώσει '---'
Δίνεται μια λίστα. Ελέγξτε ότι όλα τα στοιχεία της είναι θετικοί αριθμοί.
Δίνεται ένας ακέραιος αριθμός. Ελέγξτε εάν είναι πρώτος, δηλαδή διαιρείται μόνο με το ένα και τον εαυτό του.