In questo tutorial imparerai tutto sui diversi tipi di operatori in Python, la loro sintassi e come usarli con esempi.
Video: operatori in Python
Cosa sono gli operatori in Python?
Gli operatori sono simboli speciali in Python che eseguono calcoli aritmetici o logici. Il valore su cui opera l'operatore è chiamato operando.
Per esempio:
>>> 2+3 5
Ecco +
l'operatore che esegue l'addizione. 2
e 3
sono gli operandi ed 5
è l'output dell'operazione.
Operatori aritmetici
Gli operatori aritmetici vengono utilizzati per eseguire operazioni matematiche come addizione, sottrazione, moltiplicazione, ecc.
Operatore | Senso | Esempio |
---|---|---|
+ | Aggiungi due operandi o più unario | x + y + 2 |
- | Sottrai l'operando destro dal meno sinistro o unario | x - y- 2 |
* | Moltiplica due operandi | x * y |
/ | Dividi l'operando sinistro per quello destro (risulta sempre in virgola mobile) | x / y |
% | Modulo: resto della divisione dell'operando sinistro per quello destro | x% y (resto di x / y) |
// | Divisione del piano: divisione che si traduce in un numero intero regolato a sinistra nella riga numerica | x // y |
** | Esponente: operando sinistro elevato alla potenza di destro | x ** y (x alla potenza y) |
Esempio 1: operatori aritmetici in Python
x = 15 y = 4 # Output: x + y = 19 print('x + y =',x+y) # Output: x - y = 11 print('x - y =',x-y) # Output: x * y = 60 print('x * y =',x*y) # Output: x / y = 3.75 print('x / y =',x/y) # Output: x // y = 3 print('x // y =',x//y) # Output: x ** y = 50625 print('x ** y =',x**y)
Produzione
x + y = 19 x - y = 11 x * y = 60 x / y = 3,75 x // y = 3 x ** y = 50625
Operatori di confronto
Gli operatori di confronto vengono utilizzati per confrontare i valori. Restituisce o True
o in False
base alla condizione.
Operatore | Senso | Esempio |
---|---|---|
> | Maggiore di: vero se l'operando sinistro è maggiore di quello destro | x> y |
< | Minore di: vero se l'operando sinistro è minore di quello destro | x <y |
== | Uguale a: vero se entrambi gli operandi sono uguali | x == y |
! = | Diverso da: vero se gli operandi non sono uguali | x! = y |
> = | Maggiore o uguale a - Vero se l'operando sinistro è maggiore o uguale a destra | x> = y |
<= | Minore o uguale a - Vero se l'operando sinistro è minore o uguale a destra | x <= y |
Esempio 2: operatori di confronto in Python
x = 10 y = 12 # Output: x> y is False print('x> y is',x>y) # Output: x < y is True print('x < y is',x= y is False print('x>= y is',x>=y) # Output: x <= y is True print('x <= y is',x<=y)
Produzione
x> y è False x = y è False x <= y è True
Operatori logici
Gli operatori logici sono i and
, or
, not
operatori.
Operatore | Senso | Esempio |
---|---|---|
e | Vero se entrambi gli operandi sono veri | x e y |
o | Vero se uno degli operandi è vero | xo y |
non | Vero se l'operando è falso (completa l'operando) | non x |
Esempio 3: operatori logici in Python
x = True y = False print('x and y is',x and y) print('x or y is',x or y) print('not x is',not x)
Produzione
xey è False x o y è True non x è False
Ecco la tabella della verità per questi operatori.
Operatori bit per bit
Gli operatori bit per bit agiscono sugli operandi come se fossero stringhe di cifre binarie. Operano poco a poco, da cui il nome.
Ad esempio, 2 è 10
in binario e 7 è 111
.
Nella tabella seguente: Sia x = 10 ( 0000 1010
in binario) ey = 4 ( 0000 0100
in binario)
Operatore | Senso | Esempio |
---|---|---|
& | Bitwise AND | x & y = 0 ( 0000 0000 ) |
| | OR bit per bit | x | y = 14 ( 0000 1110 ) |
~ | Bitwise NON | ~ x = -11 ( 1111 0101 ) |
^ | Bitwise XOR | x y = 14 ( 0000 1110 ) |
>> | Spostamento bit per bit a destra | x >> 2 = 2 ( 0000 0010 ) |
<< | Spostamento a sinistra bit per bit | x << 2 = 40 (0010 1000 ) |
Assignment operators
Assignment operators are used in Python to assign values to variables.
a = 5
is a simple assignment operator that assigns the value 5 on the right to the variable a on the left.
There are various compound operators in Python like a += 5
that adds to the variable and later assigns the same. It is equivalent to a = a + 5
.
Operator | Example | Equivalent to |
---|---|---|
= | x = 5 | x = 5 |
+= | x += 5 | x = x + 5 |
-= | x -= 5 | x = x - 5 |
*= | x *= 5 | x = x * 5 |
/= | x /= 5 | x = x / 5 |
%= | x %= 5 | x = x % 5 |
//= | x //= 5 | x = x // 5 |
**= | x **= 5 | x = x ** 5 |
&= | x &= 5 | x = x & 5 |
|= | x |= 5 | x = x | 5 |
^= | x ^= 5 | x = x 5 |
>>= | x>>= 5 | x = x>> 5 |
<<= | x <<= 5 | x = x << 5 |
Special operators
Python language offers some special types of operators like the identity operator or the membership operator. They are described below with examples.
Identity operators
is
and is not
are the identity operators in Python. They are used to check if two values (or variables) are located on the same part of the memory. Two variables that are equal does not imply that they are identical.
Operator | Meaning | Example |
---|---|---|
is | True if the operands are identical (refer to the same object) | x is True |
is not | True if the operands are not identical (do not refer to the same object) | x is not True |
Example 4: Identity operators in Python
x1 = 5 y1 = 5 x2 = 'Hello' y2 = 'Hello' x3 = (1,2,3) y3 = (1,2,3) # Output: False print(x1 is not y1) # Output: True print(x2 is y2) # Output: False print(x3 is y3)
Output
False True False
Here, we see that x1 and y1 are integers of the same values, so they are equal as well as identical. Same is the case with x2 and y2 (strings).
But x3 and y3 are lists. They are equal but not identical. It is because the interpreter locates them separately in memory although they are equal.
Membership operators
in
e not in
sono gli operatori di appartenenza in Python. Sono usati per verificare se un valore o una variabile si trova in una sequenza (stringa, lista, tupla, insieme e dizionario).
In un dizionario possiamo solo verificare la presenza della chiave, non il valore.
Operatore | Senso | Esempio |
---|---|---|
nel | Vero se viene trovato un valore / una variabile nella sequenza | 5 in x |
Non in | Vero se il valore / la variabile non viene trovato nella sequenza | 5 non in x |
Esempio # 5: operatori di appartenenza in Python
x = 'Hello world' y = (1:'a',2:'b') # Output: True print('H' in x) # Output: True print('hello' not in x) # Output: True print(1 in y) # Output: False print('a' in y)
Produzione
Vero Vero Vero Falso
Qui 'H'
è in x ma 'hello'
non è presente in x (ricorda, Python distingue tra maiuscole e minuscole). Allo stesso modo, 1
è la chiave ed 'a'
è il valore nel dizionario y. Quindi, 'a' in y
ritorni False
.