Základným poslaním počítačového programu je na základe vstupných hodnôt vypočítať výstupné hodnoty. Vstupom pre program môže byť napríklad aktuálna teplota (ktorú meria senzor), smer alebo rýchlosť vetra, obyčajný vstup zo senzora - napríklad či sú alebo nie sú dvere zatvorené. Vstupom môže byť aj veľmi veľa údajov - napríklad databáza študentov našej školy, v ktorej program umožní používateľovi vyhľadávať alebo môže poskytnúť štatistiku (nájde študenta s najlepším priemerom, vytvorí graf dochádzky v závislosti na kalendárnom mesiaci, etc.). Naše programy z počiatku obmedzíme na vstupy od používateľa - manuálne zadané číselné a textové hodnoty, ktoré si náš program po spustení vypýta. Na ich uloženie v programe a prácu s nimi budeme používať premenné.
Čo je v matematike premenná? Ako ju označujeme? Čo reprezentuje? V matematike je premenná zvyčajne označená jedným písmenkom, zvyčajne označuje niečo neznáme, niečo po čom "pátrame", napríklad sa v rovnici snažíme vypočítať x.
V programovaní premenné reprezentujú rôzne hodnoty (dokonca rôzne typy - v premennej môže byť číslo ale aj text). My budeme do premenných zatiaľ priraďovať len číselné a textové hodnoty. (v premennej môže byť tiež "pravdivostná hodnota" - pravda alebo nepravda - true alebo false, alebo aj zložitejšia dátová štruktúra ako zoznam, slovník či objekt, o tom sa ale budeme učiť neskôr).
Premennú vytvárame pomocou príkazu priradenia - symbolu "rovná sa". Premennú vytvoríme tak, že do nej priradíme hodnotu. Toto funguje podobne ako sme to robili vo vývojových diagramoch, pozrite... V ukážke sme vytvárame premennú s názvom a a priradili do nej hodnotu 10.
a = 10
Premenná môže obsahovať aj desatinné číslo, desatinné miesta v Python-e oddeľujeme od celočíselnej časti bodkou!
moja_vyska = 2.13
Do premennej môžeme priradiť aj textový reťazec - text obalený úvodzovkami. Napríklad:
meno_pouzivatela = "Jozefína"
Z pochopiteľných dôvodov nie je dovolené (zmysluplné) používať premenné, ktorých obsahom je text v aritmetických výrazoch. Veď čo by malo byť výsledkom "ahoj" umocneného na štvrtú, alebo aký by mal byť zvyšok po delení "dobrý deň" % "dovidenia"... Ak neveríte, vyskúšajte, Python sa Vám posťažuje sám :)
Do premennej môžeme priradiť aj celý výpočet, potom sa vykoná nasledovné:
Napríklad:
pocet_hodin_v_tyzdni = 7 * 24
Do premennej môžeme priradiť aj výpočet, ktorého súčasťou sú (už existujúce) premenné, napríklad:
vek = 13
prezite_dni = vek * 365
prezite_tyzdne = prezite_dni // 7
prezite_hodiny = prezite_dni * 24
Do premennej môžeme priradiť aj výpočet, ktorého súčasťou je tá istá premenná, potom sa vykoná nasledovné:
Napríklad takto by sme zvýšili hodnotu v premennej a o 10.
a = 3
a = a + 10
V programovaní premenné zvyčajne označujeme dlhšími názvami ako jedným písmenkom, snahou je byť čo najstručnejší ale tiež mať kód čo najprehľadnejší - teda aby aj ďalšiemu čitateľovi nášho kódu bolo podľa možností už po prvom prečítaní čo najjasnejšie čo premenná označuje.
Názov premennej nemôže byť hocijaký, treba dodržať nasledovné:
Porušenie niektorých zásad Python-u nevadia, no snažíme sa ich dodržiavať ako súčasť pekného programátorského štýlu:
hlbkaBazena = 10
vyska_snehu = 200
Po tom, ako premennú definujeme (deklarujeme, vytvoríme) pomocou operátora priradenia (symbol "rovná sa"), môžeme ju používať ako bežné číslo v aritmetických príkladoch alebo aj v príkaze print bez použitia úvodzoviek - Python ju už pozná a na jej miesto dosadí poslednú do nej priradenú hodnotu.
hlbkaBazena = 10
print("Hĺbka bazéna je", hlbkaBazena)
Do premennej môžeme hodnotu priradiť aj viackrát, treba pri tom dávať pozor na to, že program sa vykonáva postupne - po riadkoch, teda po tom ako do premennej priradíme "novú" hodnotu, vo všetkých riadkoch pod riadkom, v ktorom sme priradili bude mať premenná už novú hodnotu.
Nasledový program vypíše po spustení dva riadky - "Hĺbka bazena je 10" a "Hĺbka bazena je 20"
hlbkaBazena = 10
print("Hĺbka bazena je", hlbkaBazena)
hlbkaBazena = 20
print("Hĺbka bazena je", hlbkaBazena)
Pozrite si nasledovné príkazy priradenia. Dávajú zmysel? Dá sa takýto program spustiť?
pocetZiakov = 10
pocetZiakov = pocetZiakov + pocetZiakov
pocetZiakov = 10
pocetZiakov = pocetZiakov + 100
Obe ukážky priradenia dávajú v Python-e zmysel. (Aj keď matematik by možno v prvom príklade povedal, že pocetZiakov musí byť 0 a v druhom by povedal, že také niečo platiť nemôže.) V Pythone totiž príkaz priradenia nie je rovnicou! Príkaz priradenia sa vykonáva nasledovne: najprv sa vyhodnotí pravá strana (napravo od symbolu rovnosti) a výsledok tohoto vyhodnocovania sa potom priradí do premennej uvedenej vľavo.
Vpravo od "rovná sa" sa teda počíta s doterajšou hodnotou premennej a po vyhodnotení pravej strany sa nová hodnota zapíše do premennej - od teraz je v premennej už nová hodnota.