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

Moduly a balíčky

Jupyter notebook z dnešního semináře a soubor b.py. Řešení úkolu.

Standardní knihovna jazyka Python

Zadání

  1. úkol 1

    Napište funkci sumtree(L), která rekurzivně sečte všechny prvky seznamu L.

    sumtree([1, [2, 3, [4, 5]]]) # vraci 15
  2. úkol 2

    Napište modul plot, který bude obsahovat funkci plot(f, x, size = 10), která bere jako argument funkci f, list hodnot x, velikost size a vykreslí funkci f pro hodnoty x do grafu jehož velikost osy y je určena hodnotou size (2*size+1, pro osy y, -y a samotnou osu x) a graf zobrazí do terminálu (nebo souboru).

    # příklad
    from plot import plot # nemusi byt dodrzeno, lze i jinak
    import math
    
    f = math.sin
    x = list(map(math.radians, range(0,365,5))) # trigonometricke fce akceptuji radiany
    plot(f, x, 10)
    
    # zobrazí
    |              +++++++
    |           +++       +++
    |         ++             ++
    |        +                 +
    |      ++                   ++
    |     +                       +
    |    +                         +
    |  ++                           ++
    | +                               +
    |+                                 +
    +-----------------------------------+-----------------------------------+-
    |                                    +                                 +
    |                                     +                               +
    |                                      ++                           ++
    |                                        +                         +
    |                                         +                       +
    |                                          ++                   ++
    |                                            +                 +
    |                                             ++             ++
    |                                               +++       +++
    |                                                  +++++++
    
    
    # volani
    f = math.cos
    plot.plot(f, x, 5)
    
    # zobrazi
    ++++++                                                             ++++++
    |     ++++                                                     ++++
    |         +++                                               +++
    |            ++                                           ++
    |              ++                                       ++
    |----------------+++---------------------------------+++------------------
    |                   ++                             ++
    |                     +++                        ++
    |                        ++                   +++
    |                          ++++           ++++
    |                              +++++++++++