Funkce si můžeme představit jako dělníky, kteří dělají námi určenou práci. Může to být třeba výpočet matematické operace nebo vykonání určité akce na různých místech v programu. Funkce nám umožňují tuto opakující se část kódu "zabalit" do jednoho místa. To má několik výhod:
Například, pokud bychom měli kód, který vypisuje pozdrav a tento pozdrav bychom potřebovali použít vícekrát, můžeme tento kód zabalit do funkce pozdrav() a použít ji všude tam, kde chceme pozdravit.
def pozdrav():
print("Ahoj, jsem delnik!")
# Použití funkce pozdrav()
pozdrav()
pozdrav()
def vypravej_pribeh():
print("Jednou za babcinym domem...")
print("A najednou se objevil drak!")
print("Drak zacal vypravet o svych dobrodruzstvich.")
# Teď řekneme dělníkovi, aby vyprávěl příběh
vypravej_pribeh()
Tahle funkce vypravej_pribeh() slouží k vyprávění příběhu o drakovi a jeho dobrodružstvích. Když je funkce zavolána pomocí vypravej_pribeh(), provedou se všechny příkazy v jejím těle.
def nazev_funkce(parametr1, parametr2, ...):
# Tělo funkce - místo, kde je definováno, co funkce dělá
# Může obsahovat libovolné množství příkazů
return vysledek # Není povinné, může být vynecháno nebo nahrazeno jiným výstupem
def secti(a, b):
soucet = a + b
return soucet
# Volání funkce
vysledek_funkce = secti(5, 3)
print("Vysledek scitani:", vysledek)
V tomto příkladu máme funkci secti, která přijímá dva parametry a a b, sečte je a vrátí výsledek pomocí klíčového slova return. Poté funkci zavoláme s argumenty 5 a 3, výsledek funkce si uložíme do proměnné vysledek_funkce a tu vypíšeme na obrazovku.
def prumer_studentu(a, b, c, d):
celkove_hodnoceni = a + b + c + d
prumer = celkove_hodnoceni / 4
return prumer
# Zavolání funkce pro výpočet průměrného hodnocení
prumer = prumer_studentu(1, 4, 5, 1)
print("Prumerne hodnoceni studenta je:", prumer)
Funkce prumer_studentu, která přijímá čtyři číselné parametry a, b, c a d, spočítá jejich průměr a ten vrátí pomocí return. Poté funkci zavoláme s argumenty 1, 4, 5 a 1, výsledek funkce si uložíme do proměnné prumer a tu vytiskneme na obrazovku.