Skip to content

Tipi di dati

Il computer gestisce informazioni molto diverse tra loro: numeri, testi, valori vero/falso. Non ha senso sommare del testo come se fossero numeri, o confrontare un nome con un prezzo.

Per questo ogni valore in Python ha un tipo di dato: una categoria che dice a Python com’è fatto quel valore e cosa puoi farci.

Un numero senza virgola. Può essere positivo, negativo o zero.

eta = 16
temperatura = -5
anno = 2024
milione = 1_000_000 # puoi usare _ come separatore per leggere meglio i grandi numeri
print(type(eta)) # <class 'int'>

Un numero con la virgola. In Python (e nella programmazione in generale) si usa il punto invece della virgola.

altezza = 1.75
pi_greco = 3.14159
temperatura = -2.5
print(type(altezza)) # <class 'float'>

Qualsiasi sequenza di caratteri: lettere, numeri, simboli. Si scrive tra virgolette singole '...' o doppie "...":

nome = "Alice"
messaggio = 'Ciao, mondo!'
frase = """Questa è una stringa
su più righe."""
print(type(nome)) # <class 'str'>

Il termine “stringa” deriva dall’inglese string (filo), perché è come una sequenza di caratteri infilati uno dopo l’altro.

Solo due valori possibili: True (vero) o False (falso). Nota la lettera maiuscola.

maggiorenne = True
piove = False
print(type(maggiorenne)) # <class 'bool'>

None è un valore speciale che significa “niente”. È utile per indicare che una variabile esiste ma non contiene ancora nessun dato.

risultato = None
print(type(risultato)) # <class 'NoneType'>

È come una scatola vuota: la scatola c’è, ma non c’è niente dentro.

Oltre ai tipi semplici, Python ha tipi che contengono più valori contemporaneamente. Li vedremo in dettaglio nei capitoli successivi, ma è bene sapere che esistono:

TipoEsempioCosa è
list (lista)[1, 2, 3]Una sequenza ordinata di elementi, modificabile
tuple(1, 2, 3)Come una lista, ma non modificabile
set (insieme){1, 2, 3}Una raccolta senza duplicati e senza ordine fisso
dict (dizionario){"nome": "Alice"}Coppie chiave-valore, come un vocabolario

Come Python assegna il tipo automaticamente

Section titled “Come Python assegna il tipo automaticamente”

In Python non devi dichiarare esplicitamente il tipo di una variabile: Python lo intuisce dal valore che assegni.

x = 10 # Python capisce che è un int
y = 3.14 # Python capisce che è un float
z = "ciao" # Python capisce che è una str

Questo si chiama tipizzazione dinamica: il tipo non è fisso, e puoi anche cambiarlo nel corso del programma (anche se di solito non è una buona idea).

intero = 10 # int — numero senza virgola
decimale = 3.14 # float — numero con virgola
testo = "Python" # str — testo
vero_o_falso = True # bool — vero o falso
niente = None # None — assenza di valore
lista = [1, 2, 3] # list — sequenza modificabile
tupla = (1, 2, 3) # tuple — sequenza fissa
insieme = {1, 2, 3} # set — raccolta senza duplicati
dizionario = {"a": 1} # dict — coppie chiave-valore