Στην Python, οι λογικοί τελεστές and
, or
και not
χρησιμοποιούνται για να συνδυάσουν λογικές εκφράσεις ή για να αναστρέψουν την τιμή της αλήθειας μιας λογικής έκφρασης.
Τελεστής and
Ο τελεστής and
επιστρέφει True
αν και οι δύο λογικές εκφράσεις είναι αληθείς. Αν έστω και μία από τις δύο εκφράσεις είναι ψευδής (False
), τότε επιστρέφει False
.
Παράδειγμα and
a = True b = False result = a and b # Επιστρέφει False, γιατί b είναι False
Τελεστής or
Ο τελεστής or
επιστρέφει True
αν έστω και μία από τις λογικές εκφράσεις είναι αληθής. Επιστρέφει False
μόνο όταν και οι δύο εκφράσεις είναι ψευδείς.
Παράδειγμα or
a = True b = False result = a or b # Επιστρέφει True, γιατί a είναι True
Τελεστής not
Ο τελεστής not
αναστρέφει την τιμή αλήθειας μιας λογικής έκφρασης. Επιστρέφει True
αν η έκφραση είναι ψευδής και False
αν είναι αληθής.
Παράδειγμα not
a = True result = not a # Επιστρέφει False, γιατί a είναι True
Οι λογικοί τελεστές είναι θεμελιώδεις στον προγραμματισμό και χρησιμοποιούνται ευρέως στην έλεγχο ροής των προγραμμάτων και τη διαχείριση συνθηκών.
Ο Λογικός Τελεστής and στην Python
Ο λογικός τελεστής and
χρησιμοποιείται για να διασφαλίσει ότι δύο συνθήκες πρέπει να είναι και οι δύο αληθείς (True
) πριν εκτελεστεί ένα μπλοκ κώδικα. Αυτός ο τελεστής επιστρέφει True
μόνο όταν και οι δύο συνθήκες είναι αληθείς. Αν μία ή και οι δύο συνθήκες είναι ψευδείς (False
), τότε το αποτέλεσμα της έκφρασης and
είναι επίσης ψευδές.
Παράδειγμα Χρήσης του and
a = True b = False # Η παρακάτω συνθήκη είναι True μόνο αν και το a και το b είναι True if a and b: # Αυτό το μπλοκ κώδικα δεν θα εκτελεστεί επειδή το b είναι False print("Και το a και το b είναι αληθείς.")
Πίνακας Αληθείας για τον Τελεστή and
Ο πίνακας αληθείας για τον τελεστή and
παρουσιάζει όλους τους πιθανούς συνδυασμούς των τιμών True
και False
για δύο εκφράσεις:
expression1 | expression2 | expression1 and expression2 |
---|---|---|
False | False | False |
False | True | False |
True | False | False |
True | True | True |
Από τον πίνακα αληθείας, βλέπουμε ότι η έκφραση expression1 and expression2
είναι αληθής μόνο όταν και οι δύο expression1
και expression2
είναι αληθείς. Αυτό καθιστά τον τελεστή and
ιδανικό για τη διασφάλιση ότι πολλαπλές συνθήκες ισχύουν πριν προχωρήσετε σε μια συγκεκριμένη ενέργεια στον κώδικά σας.
Ο Λογικός Τελεστής or στην Python
Ο λογικός τελεστής or
χρησιμοποιείται για να ελέγξει αν μία ή και οι δύο από δύο συνθήκες είναι αληθείς (True
). Αυτός ο τελεστής επιστρέφει True
αν έστω και μία από τις συνθήκες είναι αληθής. Η συνολική έκφραση είναι ψευδής (False
) μόνο αν και οι δύο συνθήκες είναι ψευδείς.
Παράδειγμα Χρήσης του or
a = False b = True # Η παρακάτω συνθήκη είναι True αν το a ή το b (ή και τα δύο) είναι True if a or b: # Αυτό το μπλοκ κώδικα θα εκτελεστεί επειδή το b είναι True print("Το a ή το b (ή και τα δύο) είναι αληθείς.")
Πίνακας Αληθείας για τον Τελεστή or
Ο πίνακας αληθείας για τον τελεστή or
παρουσιάζει όλους τους πιθανούς συνδυασμούς των τιμών True
και False
για δύο εκφράσεις:
expression1 | expression2 | expression1 or expression2 |
---|---|---|
False | False | False |
False | True | True |
True | False | True |
True | True | True |
Από αυτόν τον πίνακα, βλέπουμε ότι η έκφραση expression1 or expression2
είναι αληθής εφόσον έστω και μία από τις δύο expression1
ή expression2
είναι αληθής. Αυτό καθιστά τον τελεστή or
χρήσιμο για την ελευθερία επιλογής μεταξύ πολλαπλών συνθηκών σε ένα πρόγραμμα. Σημειώνεται επίσης ότι ο τελεστής and
έχει υψηλότερη προτεραιότητα από τον τελεστή or
.
Βελτίωση Επιδόσεων με τη Χρήση της Σύντομης Αξιολόγησης (Short-Circuit Evaluation)
Στην Python, η σύντομη αξιολόγηση (short-circuit evaluation) είναι μια τεχνική που βελτιώνει την απόδοση των λογικών εκφράσεων. Χρησιμοποιείται με τους λογικούς τελεστές and
και or
και επιτρέπει την αποφυγή περιττών ελέγχων.
Σύντομη Αξιολόγηση με τον Τελεστή and
Όταν χρησιμοποιείται ο τελεστής and
, αν η πρώτη έκφραση αποτιμάται ως False
, τότε η δεύτερη έκφραση δεν αξιολογείται καθόλου, διότι η συνολική λογική έκφραση δεν μπορεί να είναι True
ανεξάρτητα από την τιμή της δεύτερης έκφρασης.
Παράδειγμα με and
a = False b = expensive_operation() # Αυτή η συνάρτηση δεν θα κληθεί if a and b: # Αυτό το μπλοκ δεν θα εκτελεστεί pass
Σύντομη Αξιολόγηση με τον Τελεστή or
Αντίστοιχα, όταν χρησιμοποιείται ο τελεστής or
, αν η πρώτη έκφραση είναι True
, τότε η δεύτερη έκφραση δεν αξιολογείται, διότι η συνολική λογική έκφραση θα είναι True
ανεξάρτητα από την τιμή της δεύτερης έκφρασης.
Παράδειγμα με or
a = True b = expensive_operation() # Αυτή η συνάρτηση δεν θα κληθεί if a or b: # Αυτό το μπλοκ θα εκτελεστεί pass
Οφέλη της Σύντομης Αξιολόγησης
Η σύντομη αξιολόγηση βοηθά στην αποφυγή της εκτέλεσης περιττών εντολών ή ακριβών σε πόρους λειτουργιών, βελτιώνοντας έτσι την απόδοση του προγράμματος. Αυτό είναι ιδιαίτερα σημαντικό σε περιπτώσεις όπου οι εκφράσεις περιλαμβάνουν κλήσεις σε συναρτήσεις που απαιτούν πολύ χρόνο ή πόρους για την εκτέλεσή τους.
Ο Λογικός Τελεστής not στην Python
Ο λογικός τελεστής not
στην Python “αναστρέφει” την τιμή αλήθειας μιας συνθήκης. Μετατρέπει το True
σε False
και αντιστρόφως. Είναι ένας μοναδιαίος τελεστής, καθώς έχει μόνο έναν τελεστέο. Τοποθετείτε τον τελεστή not
πριν από μια συνθήκη για να επιλέξετε ένα διαφορετικό μονοπάτι εκτέλεσης αν η αρχική συνθήκη (χωρίς τον τελεστή not
) είναι ψευδής (False
).
Πίνακας Αληθείας για τον Τελεστή not
Ο πίνακας αληθείας για τον τελεστή not
συνοψίζει την αντίστροφη τιμή αλήθειας για μια συνθήκη:
expression | not expression |
---|---|
False | True |
True | False |
Παράδειγμα Χρήσης του not
a = True if not a: # Αυτό το μπλοκ δεν θα εκτελεστεί επειδή 'not a' είναι False pass
Προτεραιότητα και Ομαδοποίηση των Τελεστών
Οι λογικοί τελεστές έχουν την ακόλουθη προτεραιότητα και ομαδοποίηση, από την υψηλότερη προτεραιότητα στη χαμηλότερη:
()
(Παρενθέσεις): Από αριστερά προς τα δεξιά**
(Δύναμη): Από δεξιά προς τα αριστερά*
,/
,//
,%
(Πολλαπλασιασμός, Διαίρεση, Διαίρεση με Ακέραιο Αποτέλεσμα, Υπόλοιπο): Από αριστερά προς τα δεξιά+
,-
(Πρόσθεση, Αφαίρεση): Από αριστερά προς τα δεξιά<
,<=
,>
,>=
,==
,!=
(Συγκρίσεις): Από αριστερά προς τα δεξιάnot
(Λογικός άρνησης): Από αριστερά προς τα δεξιάand
(Λογικός και): Από αριστερά προς τα δεξιάor
(Λογικός ή): Από αριστερά προς τα δεξιά
Η κατανόηση της προτεραιότητας και ομαδοποίησης των τελεστών είναι σημαντική για τον σωστό σχεδιασμό και κατανόηση των λογικών εκφράσεων στην Python.