Operatori Logici

Abbiamo anche visto che è possibile usare l’interprete interattivo come una calcolatrice, e come convertire diversi tipi di dato. È inoltre possibile definire numeri interi usando la notazione binaria, ottale, ed esadecimale:

>>> 6 + 4*3
18
>>> 9 / 2       # la divisione tra due numeri interi restituisce un float
4.5
>>> 2j * 2j     # moltiplicazione tra numeri complessi
(-4+0j)
>>> int(10.6)   # conversione esplicita dal tipo float al tipo int
10
>>> float(20)   # conversione esplicita dal tipo int al tipo float
20.0
>>> 0b11111111  # intero in notazione binaria (prefisso 0b)
255
>>> 0o377       # intero in notazione ottale (prefisso 0o)
255
>>> 0xFF        # intero in notazione esadecimale (prefisso 0x)
255

Nota: In Python 2 esistevano due tipi di intero: int e long. In Python 3 questi due tipi sono stati unificati e il tipo int di Python 3 è in grado di rappresentare numeri interi a grandezza arbitraria (così come il tipo long di Python 2).

Operatori Aritmetici

Le operazioni sui tipi numerici sono le più classiche:

OperatoreDescrizioneEsempi
+addizione10 + 12 → 22
sottrazione5 - 1 → 4
*moltiplicazione10 * 12 → 120
/divisione9 / 4 → 2.25
//divisione intera9 // 4 → 2
%modulo (resto della divisione)9 % 4 → 1

Nota: In Python 2 la divisione tra due int ritornava un int, in Python 3 ritorna un float. In Python 2 è possibile ottenere lo stesso comportamento di Python 3 aggiungendo all’inizio del programma la riga from __future__ import division.

Operatori di Confronto

Python supporta anche operatori di confronto, che restituiscono True o False:

OperatoreDescrizioneEsempi
==uguale a8 == 8 → True
3 == 5 → False
!=diverso da3 != 5 → True
8 != 8 → False
<minore di3 < 5 → True
5 < 3 → False
<=minore o uguale a3 <= 5 → True
8 <= 8 → True
>maggiore di5 > 3 → True
3 > 5 → False
>=maggiore o uguale a5 >= 3 → True
8 >= 8 → True

Operatori Booleani

In Python esistono anche gli operatori booleani andor, e not:

OperatoreDescrizione
andRitorna True se entrambi gli operandi sono veri, altrimenti False
orRitorna True se almeno uno degli operandi è vero, altrimenti False
notRitorna False se l’operando è veroTrue se l’operando è falso

In Python ogni oggetto è o vero (numeri diversi da 0, la costante True, o contenitori che contengono almeno un elemento) o falso (ovvero il numero 0, le costanti False e None, contenitori vuoti). È possibile verificare se un oggetto è vero o falso usando bool(oggetto).

Così come avviene in altri linguaggi di programmazione, anche in Python gli operatori and e or funzionano in modo che, se il primo operando è sufficiente a determinare il risultato, il secondo non viene valutato. Inoltre, entrambi gli operatori ritornano sempre uno dei due operandi.

Operatori Binari

Esistono poi gli operatori binari (o bitwise) che permettono di lavorare al livello dei singoli bit e sono utili in particolari circostanze:

OperatoreDescrizione
x << nesegue uno shift a sinistra di n posizioni dei bit di x
x >> nesegue uno shift a destra di n posizioni dei bit di x
x & yesegue un and tra i bit di x e di y
x | yesegue un or tra i bit di x e di y
x ^ yesegue un or esclusivo tra i bit di x e di y
~xinverte i bit di x

Lascia un commento

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.

Progetta un sito come questo con WordPress.com
Comincia ora