Tabella dei contenuti: Mostra/Chiudi
In Python gli operatori sono dei costrutti che ci permettono di eseguire delle operazioni logiche o aritmetiche.
I valori su cui operano gli operatori vengono detti operandi.
Prendiamo come esempio questa operazione: 10 - 5 = 5
. In questo caso -
è l'operatore, mentre 10
e 5
sono gli operandi.
Tipi di operatori
Non esistono solamente gli operatori aritmetici, bensì in python sono presenti ben 7 differenti tipi di operatori:
- Operatori aritmetici;
- Operatori di comparazione;
- Operatori logici;
- Operatori di assegnazione;
- Operatori di membership;
- Operatori bitwise;
- Operatori di identità.
Operatori aritmetici
Gli operatori aritmetici vengono utilizzati per eseguire calcoli matematici come sottrazione, moltiplicazione, divisione, somma etc.
Prendiamo ad esempio che x = 10
e y = 5
.
Operatore | Significato | Esempio |
---|---|---|
|
somma gli operandi indicati | x + y = 15 |
- |
sottrae gli operandi indicati | x - y = 5 |
/ |
divide l'operando di sinistra con quello di destra ritornando un float | x / y = 2 |
* |
moltiplica gli operandi indicati | x * y = 50 |
** |
eleva alla potenza l'operando indicato | x ** y = 10 alla potenza di 5. |
// |
divisione dove al quoziente vengono eliminate le cifre dopo la virgola. Se uno degli operandi è negativo, il quoziente è arrotondato per difetto. |
x 10.5 -10.5 |
% |
ritorna il resto di una divisione | x % y = 0 |
Operatori di comparazione
Gli operatori di comparazione vengono utilizzati per confrontare più operandi e determinare la relazione che c'è tra essi, perciò questi operatori vengono detti anche operatori di relazione.
Prendiamo ad esempio che x = 10
e y = 5
.
Operatore | Significato | Esempio |
---|---|---|
|
ritorna il valore True se l'operando sinistro è minore di quello destro. |
x < 20
|
> |
ritorna il valore True se l'operando sinistro è maggiore di quello destro. |
x > 11
|
!= |
ritorna il valore True se i due operandi sono diversi tra loro. |
x
|
== |
ritorna il valore True se i due operando sono uguali tra loro. |
x
|
<= |
ritorna il valore True se l'operando sinistro è minore o uguale a quello destro. |
x <= 10
|
>= |
ritorna il valore True se l'operando sinistro è maggiore o uguale a quello destro. |
y >= 5
|
Operatori logici
Gli operatori logici vengono utilizzati principalmente per combinare più condizioni, possiamo usare come esempio gli operatori di comparazione appena visti:
Prendiamo ad esempio che x = 10
.
Operatore | Significato | Esempio |
---|---|---|
|
ritorna il valore True se tutte le condizioni indicate sono vere. |
x > 9
|
or |
ritorna il valore True se almeno una delle condizioni indicate è vera. |
x > 5
|
not |
inverte il risultato atteso: se sarebbe True diventa False . |
|
Operatori di assegnazione
Abbiamo utilizzato un operatore di assegnazione già nella parte precedente riguardo le variabili, ovvero il =
.
Questi operatori ci permettono, come avrai intuito, di assegnare dei valori alle variabili.
Operatore | Significato | Esempio |
---|---|---|
|
assegna all'operando di sinistra il valore dell'operando di destra. | x = 5 |
+= |
assegna all'operando di sinistra la somma tra esso e l'operando di destra. | x += y |
-= |
assegna all'operando di sinistra la differenza tra esso e l'operando di destra. | x -= y |
*= |
assegna all'operando di sinistra la moltiplicazione tra esso e l'operando di destra. | x *= y |
/= |
assegna all'operando di sinistra la divisione tra esso e l'operando di destra. | x /= y |
//= |
assegna all'operando di sinitra la divisione arrotondata tra esso e l'operando di destra | x //= y |
%= |
assegna all'operando di sinistra il resto ottenuto dividendo esso per l'operando di destra | x %= y |
**= |
assegna all'operando di sinistra il numero avente esso per base e l'operando di destra come esponente | x **= y |
Tranne il primo operatore di assegnazione indicato, tutti gli altri risultati possono essere ottenuti in un altro modo:
x += y
è equivalente ax = x + y
;x -= y
è equivalente ax = x - y
.
e così via.
Operatori di membership
Gli operatori di membership vengono utilizzati per verificare se un valore è presente all'interno di una sequenza come una lista, una stringa, una tupla o un dizionario.
Prendiamo per esempio di avere una stringa x = "ciao"
.
Operatore | Significato | Esempio |
---|---|---|
|
ritorna il valore True se l'operando di sinistra è presente nella sequenza indicata |
"a"
|
not in |
ritorna il valore True se l'operando di sinistra non è presente nella sequenza indicata |
"o"
|
Operatori di identità
Gli operatori di identità vengono usati per verificare se due operandi sono uguali(se si riferiscono allo stesso oggetto), ovvero se puntano alla stessa locazione di memoria.
Nota bene: il fatto che i due operandi abbiano lo stesso valore non implica che essi siano uguali.
Operatore | Significato | Esempio |
---|---|---|
|
ritorna il valore True se i due operandi sono uguali. |
x is True |
is not |
ritorna il valore True se i due operandi non sono uguali(non si riferiscono allo stesso oggetto). |
x is not False |
Operatori bitwise
Gli operatori bitwise servono per confrontare i valori binari degli operandi e operano bit per bit.
Prendiamo per esempio x = 4
(0000 0100 in binario) e y = 2
(0000 0010 in binario).
Operatore | Significato | Esempio |
---|---|---|
|
confronta bit per bit dei due operandi e assegna 1 al risultato finale quando entrambi sono a 1 (bitwise and). |
x (0000 0000) |
| |
confronta bit per bit dei due operandi e assegna 1 al risultato finale quando almeno uno dei due bit a confronto è a 1 (bitwise or). |
x (0000 0110) |
~ |
operatore unario che inverte i valori binari (bitwise not). |
(1111 1011) |
^ |
confronta bit per bit dei due operandi e assegna 1 al risultato finale quando solo uno dei due bit a confronto è a 1 (bitwise xor). |
x (0000 0110) |
<< |
vengono spostati(shiftati) i bit verso sinistra in base al numero indicato. |
x (0010 0000) |
>> |
vengono spostati(shiftati) i bit verso destra in base al numero indicato. |
x (0000 0001) |
Conclusione
Bene, siamo giunti al termine anche di questa terza parte, spero di esserti stato utile.
Ti invito a commentare qua sotto 👇, a seguirmi su instagram e di iscriverti alla mia newsletter per rimanere sempre aggiornato sulle news di questo blog, alla prossima!