Funkce v Pythonu
Porozumění
Programování v Pythonu I
Funkce je pojmenovaný blok příkazů. Funkcím můžeme předávat argumenty. Funkce vrací návratovou hodnotu.
Definice funkce
Python nabízí celou řadu vestavěných funkcí, tedy takových, které
jsou již připravené tvůrci jazyka. Příkladem je třeba funkce
len, která počítá délku řetězce.
Vlastní funkci definujeme pomocí klíčového slova
def:
def say_hello(name):
print("Hello", name)Tímto jsme definovali funkci say_hello, která má
parametr name. Funkce může mít i více parametrů.
Volání funkce
Tím, že definujeme funkci, se ještě nevykoná. Aby se funkce vykonala, musíme ji zavolat. To uděláme tak, že napíšeme jméno funkce a do závorek předáme konkrétní argument:
say_hello("Alice") # vypíše Hello Alice
say_hello("Bob") # vypíše Hello BobNěkteré funkce jsou bez parametrů. U jejich volání musíme závorky
stále uvést, např. say_goodbye().
Návratová hodnota
Funkce může vracet návratovou hodnotu pomocí klíčového slova
return. Následující funkce vypočítá a vrátí faktoriál.
def factorial(n):
f = 1
for i in range(1, n+1):
f = f*i
return fTakováto funkce sama o sobě nic neprovede, pouze vrátí hodnotu, se kterou můžeme dále pracovat.
factorial(5) # vypočítá hodnotu faktoriálu z 5, ale pak se tato
# hodnota nijak nepoužije
print(factorial(4)) # tentokrát výsledek výpočtu vypíšeme
x = factorial(6) # výsledek výpočtu se uloží do proměnné
print(x) # a pak třeba můžeme hodnotu proměnné vypsatPříkaz return ukončuje provádění funkce. Při volání
následující funkce se tedy vypíše pouze foo:
def test():
print("foo")
return 0
print("bar")Rozdíl return a print
Častý zdroj problémů u začátečníků je správné rozlišování mezi
použitím print a return ve funkcích.
Použití print způsobí okamžitý výpis hodnoty, nelze však
s touto hodnotou nijak dál pracovat.
Použití return ukončí funkci a vrátí hodnotu. Ta se automaticky nevypíše, ale můžeme ji přiřadit do proměnné a dále s ní
pracovat.