KMI/PHT Programování v jazyce Python: Seminář 02

Funkce a generátory

Jupyter notebook z dnešního semináře. Prezentované zdrojové kódy úkolů.

Zadání

  1. úkol 1

    Napište funkci pocitadlo(start), která bude uchovávat počet volání dané funkce, přičemž počet začne na hodnotě start. Při implementaci nepoužívejte globální proměnné.

    a = pocitadlo(10)
    a() # vraci 10
    a() # vraci 11
    a() # vraci 12
  2. úkol 2

    Napište funkci mapovani(f, x), která bere jako argument funkci f a list x, aplikuje funkci f na každý element listu x a změněné hodnoty zapíše do listu x.

    x = [1, 2, 3, 4, 5]
    f = lambda x: x*2
    
    mapovani(f, x)
    
    # x nyní obsahuje [2, 4, 6, 8, 10]
  3. úkol 3

    Napište funci minmax(), která bere libovolný počet argumentů typu integer a vrací jejich minimum a maximum. Při řešení nepoužívejte funkce min a max.

  4. úkol 4

    Napište funkci posun(s), která pro zadaný řetězec s vypíše všechny řetezce, které vzniknou cyklickým posunem s.

    posun('spam')
    # vypise
    spam
    pams
    amsp
    mspa