Salta ai contenuti
Manuale LogoManuale Logo

Tipi di dati in Python

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: indica com’è fatto e quali operazioni puoi eseguire su di esso.

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 rappresenta l’assenza intenzionale di un risultato o di un dato disponibile.

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

None è comunque un valore vero e proprio, di tipo NoneType. Non equivale a 0, a False o a una stringa vuota.

Python ha anche tipi che raccolgono più valori. Li vedrai nei capitoli successivi; per ora basta riconoscerli:

Tipo Esempio Cosa è
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

In Python non devi dichiarare il tipo di una variabile: viene ricavato dal valore assegnato.

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

Questa caratteristica si chiama tipizzazione dinamica. Il tipo non è fisso e può cambiare durante il programma, anche se di solito è meglio evitarlo.

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