Python ha un ricco set di tipi incorporati che coprono numeri, testo, raccolte e altro. Conoscerli — e quali sono mutabili vs immutabili — è fondamentale.
Tipi numerici
x =
y =
z = +
b =
Python ha un ricco set di tipi incorporati che coprono numeri, testo, raccolte e altro. Conoscerli — e quali sono mutabili vs immutabili — è fondamentale.
x =
y =
z = +
b =
Nota: Python int ha precisione arbitraria — non va mai in overflow (a differenza degli int a dimensione fissa in C/Java); 2 ** 1000 funziona semplicemente.
s = "hello" # str — Unicode text (immutable)
data = b"bytes" # bytes — raw binary (immutable)
lst = [1, 2, 3] # list — ordered, MUTABLE, allows duplicates
tup = (1, 2, 3) # tuple — ordered, IMMUTABLE
d = {"a": 1, "b": 2} # dict — key→value, mutable, insertion-ordered
s = {1, 2, 3} # set — unordered, unique elements, mutable
fs = frozenset({1, 2}) # frozenset — immutable set
result = None # NoneType — represents "no value" (like null)
if result is None: # always compare to None with `is`, not ==
...
type(x) # <class 'int'>
isinstance(x, int) # True — the preferred check (handles subclasses)
Immutable: int, float, bool, str, tuple, frozenset, bytes, None
Mutable: list, dict, set, bytearray
Questa distinzione è molto importante — gli oggetti immutabili possono essere chiavi dict e sono sicuri da condividere; gli oggetti mutabili possono cambiare inaspettatamente se aliasati.
I tipi incorporati sono il vocabolario di tutto il codice Python.
Conoscere lo scopo di ciascuno — lista per sequenze ordinate, dict per coppie chiave-valore, set per unicità, tuple per record fissi, interi a precisione arbitraria, e soprattutto la divisione mutabile-vs-immutabile (che governa le chiavi dict, i bug di aliasing e ciò che può essere condiviso in modo sicuro) è fondamentale.
Scegliere il tipo giusto per il lavoro — e comprendere la sua mutabilità — è un'abilità Python fondamentale che influisce sulla correttezza e sulle prestazioni in tutto il programma.