Python ima bogat skup ugrađenih tipova koji pokrivaju brojeve, tekst, zbirke i još mnogo toga. Poznavati ih — i koje su mutable nasuprot immutable — je fundamentalno.
Numerički tipovi
x =
y =
z = +
b =
Napomena: Python int ima proizvoljnu preciznost — nikada se ne preliva (za razliku od tipova fiksne veličine u C/Java); 2 ** 1000 jednostavno funkcionira.
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
Ova razlika je vrlo važna — immutable objekti mogu biti ključevi dict-a i sigurni su za dijeljenje; mutable objekti se mogu neočekivano promijeniti ako su aliasani.
Ugrađeni tipovi su vokabular svih Python kodova.
Znati namjenu svakog — (lista za uređene sekvence, dict za ključ-vrijednost, skup za jedinstvitost, tuple za fiksne zapise), cijeli brojevi proizvoljne preciznosti, i posebno podjela mutable-vs-immutable (koja upravlja ključevima dict, greškama aliasiranja i čime se može sigurno dijeliti) temeljna je.
Odabir pravilnog tipa za posao — i razumijevanje njegove mutabilnosti — je temeljne Python vještine koja utječe na ispravnost i performanse tijekom programa.