Čo je premenná?
Predstav si škatuľku s nálepkou na polici. Na nálepku napíšeš meno — napríklad „vek" — a dovnútra vložíš číslo. Neskôr môžeš škatuľku otvoriť, prečítať obsah alebo ho vymeniť za niečo nové. Presne tak funguje premenná v programovaní: je to pomenované miesto v pamäti počítača, ktoré uchováva nejakú hodnotu.
Keď program beží, potrebuje sledovať rôzne informácie — skóre hráča, meno používateľa, výsledok výpočtu. Premenné umožňujú ukladať tieto údaje pod zrozumiteľným menom namiesto surových adries v pamäti.
vek = 16
meno = "Alica"
skore = 0
Po vykonaní týchto riadkov počítač vyhradí malý kúsok pamäte pre každý názov a uloží doň zadanú hodnotu. Kedykoľvek neskôr program použije vek, dostane späť hodnotu 16.
Deklarácia a priradenie premenných
Deklarácia je oznámenie programu, že premenná s daným názvom existuje. Priradenie je uloženie hodnoty do tej premennej. V mnohých jazykoch sa oba kroky dejú naraz:
teplota = 22.5
Hodnotu uloženú v premennej môžeš kedykoľvek zmeniť:
skore = 0
skore = skore + 10 # skore je teraz 10
skore = skore + 5 # skore je teraz 15
Pravá strana priradenia sa vždy vyhodnotí ako prvá, potom sa výsledok uloží do premennej na ľavej strane.
Názov premennej by mal jasne opisovať, čo uchováva. Mená ako x alebo tmp1 sťažujú čítanie kódu. Mená ako zdravieHraca alebo celkovaNaklady robia zámer programu oveľa zreteľnejším.
Bežné dátové typy
Nie všetky hodnoty sú rovnakého druhu. Počítač potrebuje vedieť, či je hodnota celé číslo, desatinné číslo, text alebo pravdivostná hodnota — pretože každý druh ukladá a spracúva inak. Práve to vyjadrujú dátové typy.
Celé číslo (int)
Celé číslo nemá desatinnú časť. Môže byť kladné, záporné alebo nula.
zivoty = 3
teplota = -5
rok = 2025
Desatinné číslo (float)
Float (z anglického floating-point, číslo s pohyblivou rádovou čiarkou) je číslo, ktoré môže mať desatinnú časť.
cena = 9.99
pi = 3.14159
percento = 72.5
Reťazec (str)
Reťazec je postupnosť znakov — písmen, číslic, medzier, interpunkcie. Reťazce sa zapisujú v úvodzovkách.
pozdrav = "Ahoj, svet!"
pouzivatel = "alica_99"
prazdny = ""
Logická hodnota (bool)
Logická hodnota môže nadobúdať iba jednu z dvoch hodnôt: True (pravda) alebo False (nepravda). Boolovské hodnoty sú výsledkom otázok áno/nie a riadia rozhodovanie v programoch.
jePrihlaseny = True
vyhral = False
Predstav si logickú hodnotu ako vypínač svetla — je buď zapnutý (True) alebo vypnutý (False). Vždy, keď program robí rozhodnutie („mám zobraziť toto menu?", „prišiel hráč o všetky životy?"), sa to nakoniec opiera o boolovskú kontrolu.
Prečo záležia dátové typy
Dátové typy nie sú len nálepky — určujú, ako počítač ukladá hodnotu v pamäti a aké operácie sú s ňou povolené.
Napríklad sčítanie dvoch celých čísel dáva súčet:
a = 10
b = 3
vysledok = a + b # vysledok je 13
Ale sčítanie dvoch reťazcov ich spája (zreťazuje):
prvy = "Ahoj"
druhy = " svet"
sprava = prvy + druhy # sprava je "Ahoj svet"
Neopatrné miešanie typov vedie k chybám. Pokus o sčítanie celého čísla a reťazca priamo nemá zmysel a zvyčajne spôsobí typovú chybu:
vek = 16
pozdrav = "Mám " + vek # CHYBA vo väčšine jazykov
Na opravu musíme celé číslo najprv explicitne previesť na reťazec:
pozdrav = "Mám " + str(vek) # "Mám 16"
Vždy sleduj, aký typ premenná uchováva, skôr než na nej vykonáš operáciu. Typové chyby patria medzi najčastejšie začiatočnícke chyby v programovaní.
Všetko dokopy
Tu je krátky program, ktorý používa niekoľko rôznych dátových typov naraz:
menoPhraca = "Alica"
zivoty = 3
skore = 0.0
hrajeSa = True
skore = skore + 50.5
zivoty = zivoty - 1
print("Hráč: " + menoPhraca)
print("Zostatok životov: " + str(zivoty))
print("Skóre: " + str(skore))
Výstup:
Hráč: Alica
Zostatok životov: 2
Skóre: 50.5
Každá premenná má jasnú úlohu: reťazec uchováva meno, celé číslo počíta životy, float sleduje desatinné skóre a logická hodnota by mohla riadiť herný cyklus.
Cvičné príklady
Aký dátový typ by si použil na uloženie veku osoby?
Zobraziť odpoveď
Aký je rozdiel medzi deklaráciou a priradením?
Zobraziť odpoveď
Čo bude obsahovať premenná x po vykonaní: x = 4 a potom x = x + 3?
Zobraziť odpoveď
Prečo by sčítanie reťazca a celého čísla spôsobilo chybu?