Python ima bogat nabor vgrajenih tipov, ki pokrivajo števila, besedilo, zbirke in še mnogo več. Poznavanje teh — in katere so mutable vs immutable — je temeljno.
Numerični tipi
x = 42 # int — arbitrary precision (no overflow!)
y = 3.14 # float
z = 2 + 3j # complex
b = True # bool (a subclass of int: True == 1)
Opomba: Python int ima poljubno natančnost — nikoli se ne preplavi (za razliko od int-ov fiksne velikosti v C/Java); 2 ** 1000 preprosto deluje.
Besedilo in bytes
s = "hello" # str — Unicode text (immutable)
data = b"bytes" # bytes — raw binary (immutable)
Tipi zbirk
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
Posebni tip None
result = None # NoneType — represents "no value" (like null)
if result is None: # always compare to None with `is`, not ==
...
Preverjanje tipov
type(x) # <class 'int'>
isinstance(x, int) # True — the preferred check (handles subclasses)
Povzetek: mutable vs immutable
Immutable: int, float, bool, str, tuple, frozenset, bytes, None
Mutable: list, dict, set, bytearray
Ta razlika je zelo pomembna — immutable objekti so lahko ključi dict in so varni za deljenje; mutable objekti se lahko nepričakovano spremenijo, če so aliasani.
Zakaj je to pomembno
Vgrajeni tipi so besednjak celotne Python kode.
Poznavanje namena vsakega (list za urejene zaporedje, dict za pare ključ-vrednost, set za edinstvenost, tuple za fiksne zapise), celih števil s poljubno natančnostjo in posebno razdelitev mutable-vs-immutable (ki upravlja ključe dict, napake aliasiranja in kaj je mogoče varno deliti) je temeljno.
Izbira pravega tipa za nalogo — in razumevanje njegove spremenljivosti — je osnovna Python spretnost, ki vpliva na pravilnost in zmogljivost v celotnem programu.
