Funkcie sú jedným z najdôležitejších konceptov v programovaní. Umožňujú nám rozdeliť program na menšie, samostatné časti, z ktorých každá má svoju vlastnú úlohu. Vďaka funkciám môžeme kód písať raz a používať ho opakovane.
Definovanie funkcie
Funkciu definujeme pomocou kľúčového slova def (v Pythone), po ktorom nasleduje názov funkcie a zátvorky. Telo funkcie tvorí odsadený blok kódu.
def pozdrav():
print("Ahoj, vitaj!")
# Volanie funkcie
pozdrav()
Funkciu najprv definujeme a potom ju voláme jej názvom. Definícia sama osebe nič nevykoná — kód sa spustí až pri volaní.
Dobrý názov funkcie opisuje, čo funkcia robí. Používajte slovesá: vypocitaj_sucet, skontroluj_vek, nacitaj_subor. Takto je kód čitateľnejší aj bez komentárov.
Parametre a argumenty
Funkcia môže prijímať vstupné hodnoty — parametre. Keď funkciu voláme, odovzdávame jej konkrétne hodnoty — argumenty.
def pozdrav_menom(meno):
print("Ahoj, " + meno + "!")
pozdrav_menom("Jana") # Vypíše: Ahoj, Jana!
pozdrav_menom("Peter") # Vypíše: Ahoj, Peter!
Funkcia môže mať aj viac parametrov, ktoré oddeľujeme čiarkami. Niektoré parametre môžu mať predvolenú hodnotu:
def vypocitaj_cenu(zaklad, zlava=0):
return zaklad - (zaklad * zlava / 100)
print(vypocitaj_cenu(100)) # 100.0
print(vypocitaj_cenu(100, 20)) # 80.0
Návratová hodnota
Funkcia môže vrátiť výsledok pomocou príkazu return. Tento výsledok môžeme uložiť do premennej alebo použiť vo výraze.
def scitaj(a, b):
return a + b
vysledok = scitaj(3, 4)
print(vysledok) # 7
Funkcia by mala robiť jednu vec a robiť ju dobre. Ak funkcia robí príliš veľa vecí naraz, zvažte jej rozdelenie na viac menších funkcií.
Prečo sú funkcie dôležité
Funkcie prinášajú niekoľko zásadných výhod:
- Opakovateľné použitie: Kód napíšeme raz a voláme ho mnohokrát z rôznych miest.
- Prehľadnosť: Program rozdelíme na logické celky, ktoré je ľahšie pochopiť a ladiť.
- Jednoduchá oprava chýb: Chybu opravíme na jednom mieste namiesto hľadania vo všetkých kópiách.
- Testovateľnosť: Každú funkciu môžeme otestovať samostatne.
Bez funkcií by bol kód dlhý, neprehľadný a ťažko udržiavateľný. Funkcie sú základom dobrého programátorského štýlu a umožňujú budovať väčšie systémy zo zvládnuteľných súčastí.
Cvičné príklady
Čo vráti funkcia, ak neobsahuje príkaz return?