Doteraz sme len vpisovali rôzne typy do príkazového riadku. Aby sme s nimi mohli ďalej pracovať vytvoríme si tzv. premenné. Premenná je pomenovanie nejakej hodnoty v pamäti. Premenná vzniká je zadeklarovaním. Meno premennej môže obsahovať čísla, písmená (malé) a podčiarkovník. Musí sa líšiť od rezervovaných slov (napríklad for, if, def, return, while, class,…). Zápis priradenia:
meno_premennej = hodnota
# napríklad
a = 56
b = "Hello world"
x = a
Pri zápise na pravej strane nemusí byť len hodnota, alebo znakový reťazec. Môže sa tu nachádzať aj napr. výpočet.
a = 10
b = a + 5
a = 12
Najprv python zistí, či sa v pamäti hodnôt nachádza 10. Ak nie zapíše ju do pamäte hodnôt a vytvorí k premennej na ňu referenciu. Následne prejde na ďalší riadok kde na pravej strane vypočíta a (10) + 5, opäť sa pozrie do pamäti hodnôt, či je tam hodnota 15, ak nie vytvorí ju, následne taktiež vytvorí referenciu na hodnotu 15 pre premennú b. Pokiaľ by sme následne zmenili premennú a na hodnotu 12, opäť vytvorí referenciu. Nakoľko na hodnotu 10 už žiadna premenná neodkazuje vymaže z pamäte hodnôt.
Priradiť dokážeme aj funkciu. Napríklad print():
vypis = print()
vypis("hello")
hello
Zatiaľ je nám toto úplne na nič, ale je dobre o tom vedieť už teraz. Keď už budeme dobre rozumieť mechanizmu priraďovania mien premenných rôznymi hodnotami, bude nám jasné, prečo funguje. Pozor na preklepy, ktoré sa nám môžu prihodiť napr.:
print=('ahoj')
print('ahoj')
TypeError: 'str' object is not callable
Do premennej print
, ktorá obsahovala referenciu na štandardnú funkciu, sme omylom priradili inú hodnotu (znakový reťazec 'ahoj'
) a tým sme znefunkčnili vypisovanie hodnôt pomocou pôvodného obsahu tejto premennej.
Skrátený zápis
Ak by sme chceli urobiť takzvaný „update“ premennej, doteraz by sme to zapísali nasledovne:
x = 5
x = x + 5
print(x)
10
Python na tieto prípady aktualizácie nejakej premennej ponúka špeciálny zápis priraďovacieho príkazu:
meno_premennej += hodnota # meno_premennej = meno_premennej + hodnota meno_premennej -= hodnota # meno_premennej = meno_premennej - hodnota meno_premennej *= hodnota # meno_premennej = meno_premennej * hodnota meno_premennej /= hodnota # meno_premennej = meno_premennej / hodnota meno_premennej //= hodnota # meno_premennej = meno_premennej // hodnota meno_premennej %= hodnota # meno_premennej = meno_premennej % hodnota meno_premennej **= hodnota # meno_premennej = meno_premennej ** hodnota
x = 5
x += 5
print(x)
10
Ďalšia možnosť ako skrátiť zápis priradenia je viacnásobné priradenie:
a = b = c = 10
# to isté ako keby sme napísali
a = 10
b = 10
c = 10
Ďalšia možnosť priradenia je tzv. paralelné priradenie:
a, b, c = 10, "hello", 30
# to isté ako
a = 10
b = "hello"
c = 30
# priradenie reťazca, musí byť rovnaký počet premenných a znakov
a, b, c, d, e, f, g = 'tkinter'
print(a, b, c, d, e, f, g)
t k i n t e r