Predstavte si, že vo svojom programe potrebujete často urobiť to isté. Napríklad potrebujete na viacerých miestach načítať niečo zo vstupu, a potom niečo vypísať.
a = input()
print('ahoj ' + a)
#
#
#
b = input()
print('ahoj ' + b)
#
#
# a tak dalej
Toto síce docieli to čo chceme avšak za následok to bude mať aj dlhší, neprehľadnejší kód s viac miestami kde sa môžeme pomýliť. Nezúfajte, zachránia nás funkcie. Horný program môžeme ekvivalentne zapísať aj krajšie:
def pozdrav():
x = input()
print('ahoj ' + x)
#
#
pozdrav()
#
#
pozdrav()
#
# a tak dalej
Ak si predchádzajúce dva príklady porovnáte,
malo by vám byť intuitívne jasné, čo funkcie robia.
S funkciami sme sa už stretli kedže {print}
je príklad funkcie.
Čo je teda funkcia? Je to viac príkazov pospájaných do jedného celku,
tvoriac akýsi superpríkaz vykonávajúci nejakú vec.
Pamätajte, funkcia môže mať pokojne aj niekoľko desiatok riadkov,
pokiaľ toho robí viac alebo je zložitejšia.
Možno ste si všimli, že v príklade vyšie sme použitím funkcie niečo stratili. V druhom programe totižto nemáme uložené v premenných veci, čo sme načítali. Funkcie však zvládnu aj to.
Funkcie nám vedia niečo "vrátiť". To vieme využiť presne na to, aby sme si uložili vo funkcií načítané dáta. Vyzerať to môže napr. takto:
def pozdrav():
x = input()
print('ahoj ' + x)
return x
#
#
a = pozdrav()
#
#
b = pozdrav()
#
# a tak dalej
Teraz už naozaj robia oba programy to isté.