20. Definice a použití funkcí v Pythonu#

Funkce jsou klíčovým stavebním prvkem v programování, který umožňuje strukturovat kód do logických bloků, což zvyšuje čitelnost a znovupoužitelnost kódu.

20.1. Co je funkce?#

Funkce v Pythonu jsou pojmenované bloky kódu, které provádějí určité úkoly. Definice funkce začíná klíčovým slovem def, následovaným názvem funkce a závorkami, ve kterých můžete definovat parametry funkce. Základní syntaxe vypadá následovně:

Tělo funkce je zleva odsazeno od hlavičky o čtyři mezery.

def nazev_funkce(parametr1, parametr2, ...):
    # Tělo funkce
    # Provádějte úkoly zde

def dalsi_funkce():
    # Tělo funkce je odsazeno o 4 mezery
    # Tělo funkce sahá tak daleko, jak dlouhý je odsazený blok

Nyní si vytvořme jednoduchou funkci, která vypíše pozdrav:

def pozdrav(jmeno):
    print(f'Zdravím, {jmeno}!')

# Volání funkce
pozdrav('Alice') # Vypíše: Zdravím, Alice!
pozdrav('Bob')   # Vypíše: Zdravím, Bob!

20.2. Parametry, dokumentační řetězce a návratová hodnota funkcí#

Parametry jsou proměnné, které můžete předat funkci. Jsou to hodnoty, se kterými bude funkce pracovat. Můžete definovat funkci bez parametrů, nebo s libovolným počtem parametrů.

Funkce může také vracet hodnotu pomocí klíčového slova return.

Je dobrým zvykem do definice funkce psát dokumentační řetězec, který na začátku funkce shrnuje, jakou funkce vykonává činnost, co funkce očekává na vstupu a co na výstupu. Je formátován jako textový řetězec přes libovolný počet řádků. Je uvozen na začátku i na konci trojicí uvozovek.

def secti(a, b):
    """
    Funkce má dva agumenty a vrací jejich součet.
    Argumenty mohou být čísla nebo řetězce, nebo 
    libovolné prvky, pro které je definován součet.
    """
    vysledek = a + b
    return vysledek

# Volání funkce se dvěma parametry
soucet = secti(5, 3)
print(soucet)  # Vypíše: 8

20.3. Úkol#

Napište definici funkce obsah_ctverce, která má na vstupu jedno číslo (délku strany čtverce) a na výstupu textový řetězec „Obsah čtverce o straně délky A je B.“, kde A a B jsou délka strany a B je obsah čtverce.