Funkce je pojmenování části kódu. To má dvě hlavní výhody:
Definice funkce začíná klíčovým slovem def
, potom následuje identifikátor funkce - její jméno, kulaté závorky a dvojtečka. Tělo funkce je odsazené zleva.
def zastekej():
print("haf")
Při volání funkce se provede kód v jejím těle.
zastekej()
haf
for i in range(10):
zastekej()
haf haf haf haf haf haf haf haf haf haf
Funkce může mít libovolný počet parametrů, píšeme je do kulatých závorek za identifikátor funkce. Pokud má funkce parametrů více, oddělujeme se čárkami.
def zastekej(kolikrat):
for i in range(kolikrat):
print("haf")
zastekej(3)
haf haf haf
Některé parametry mohou mít nastavenou defaultní hodnotu.
def zastekej(kolikrat=1):
for i in range(kolikrat):
print("haf")
zastekej() # použije se defaultní hodnota, vytiskne se 1 krát
print()
zastekej(5) # vytiskne se 5 krát
haf haf haf haf haf haf
Fukce může vracet výsledek.
def soucet(a, b):
vysledek = a+b
return vysledek
soucet(3, 5)
8
Parametry i návratová hodnota mohou být libovolného typu.
soucet(3, 5)
8
soucet("vodo", "měr")
'vodoměr'
soucet([1, 2], [11, 22])
[1, 2, 11, 22]
Pokud potřebujeme, aby funkce měla více návratových hodnot, můžeme vracet seznam (nebo typ n-tice).
def deleni_se_zbytkem(a, b):
vysledek = a//b
zbytek = a % b
return [vysledek, zbytek]
v = deleni_se_zbytkem(7, 3)
print("výsledek:", v[0])
print("zbytek:", v[1])
výsledek: 2 zbytek: 1
Volání funkcí je možné řetězit.
v = soucet("vodo", "měr")
v = soucet(v, "ka")
v
'vodoměrka'
To samé je možné napsat i na jeden řádek
v = soucet(soucet("vodo", "měr"), "ka")
v
'vodoměrka'
Tisk výsledku funkce:
print(soucet("vodo", "měr"))
vodoměr
def soucet(a, b):
vysl = a+b
return vysl
Proměnné, které existují v celém programu.
pocet = 0
def zastekej(kolikrat):
global pocet # globální proměnná
for i in range(kolikrat):
print("haf")
pocet += 1