Vlastní funkce

Pamatuješ na funkce len() a print()? Jsou jako kouzelná zaříkadla z knihy vázané v kůži: když víš jak se jmenují a umíš je správně napsat, něco pro tebe udělají.

Teď postoupíme na další úroveň: vymyslíme si vlastní zaříkadla! Jak? Budeme kombinovat příkazy, které už známe.

Třeba funkce, která tě pozdraví, by měla:

  • Vypsat „ahoj!“
  • Vypsat „jak se máš?“

Definice funkce v Pythonu začíná klíčovým slovem def, dále je uveden název a následují závorky (zatím prázdné). Pak je jako po if dvojtečka – a odsazené příkazy, které má funkce provést.

def pozdrav():
    print('Ahoj!')
    print('Jak se máš?')

Naše první funkce je připravena!

Když ale tenhle program spustíš, nic neudělá. To proto, že tohle je jen definice funkce. Python teď ví jak pozdravit – ale neřeklo se, že to má udělat!

Na konec programu přidej volání. To už není součást funkce, ale pokračování samotného programu. Proto nesmí být odsazené:

def pozdrav():
    print('Ahoj!')
    print('Jak se máš?')

pozdrav()

Co se stane, když funkci zavoláš několikrát po sobě?

def pozdrav():
    print('Ahoj!')
    print('Jak se máš?')

pozdrav()
pozdrav()
pozdrav()

Co se stane, když volání dáš nad definici funkce, místo na konec programu?

pozdrav()

def pozdrav():
    print('Ahoj!')
    print('Jak se máš?')

Řešení

Parametry

Tvoje funkce se dá volat jen jako pozdrav(). Funkce jako len('slovo') a print(1 + 2) umí navíc pracovat s hodnotou.

Poďme napisať funkciu, ktorá ťa pozdraví menom. (Uľahčíme si to použitím jazyka, ktorý nepoužíva piaty pád.)

def pozdrav(meno):
    print('Vitam ťa,', meno)

pozdrav('Ola')
pozdrav('Soňa')
pozdrav('Hubert')
pozdrav('Anička')

Jak to funguje? V definici funkce uvedeš závorkách parametr – jméno proměnné se kterou bude funkce pracovat. Hodnotu pro tenhle parametr pak zadáš při volání funkce.

Zvládneš napsat program, který se zeptá na jméno a pak tě pozdraví?

Řešení

Co se stane, když funkci zavoláš bez hodnoty pro parametr?

Řešení

Funkce může obsahovat jakýkoli kód. Třeba podmíněný příkaz, if. Příkazy po if je pak potřeba odsatit o další čtyři mezery:

def pozdrav(meno):
    print('Vitam ťa,', meno)
    if meno == 'Ola':
        print('Ty umíš programovať!')

pozdrav('Hubert')
pozdrav('Ola')
pozdrav('Soňa')

Vracení

Další věc, kterou funkce jako len umí, je vrátit výsledek:

delka = len('Ola')
print(delka)        # napíše: 3

Jak na to? Ve funkci můžeš použít příkaz return, který funkci okamžitě ukončí a vrátí danou hodnotu:

def dvojnasobek(x):
    return x * 2

print(dvojnasobek(42))

Zkus napsat funkci, která pátý pád nějakého jména, třeba:

  • paty_pad('Ola') → 'Olo'
  • paty_pad('Soňa') → 'Soňo'
  • paty_pad('Hubert') → 'Huberte'

Tohle je velice složitý úkol, tak si ho trochu zjednodušíme. Funkce by měla dělat tohle:

  • Pokud jméno je „Hubert“:
    • vrátí Huberte
  • Pokud jméno končí na a:
    • vrátí jméno s o místo posledního písmenka
  • Jinak:
    • Vrátí původní jméno. (Uživatel si toho snad nevšimne.)
def paty_pad(jmeno):
    if jmeno == 'Hubert':
        return 'Huberte'
    elif jmeno[-1] == 'a':
        return jmeno[:-1] + 'o'
    else:
        return jmeno

Dokážeš změnit funkci pozdrav, aby zdravila v češtině?

Řešení

Shrnutí

Co bylo nového tentokrát?

  • Funkce umožňuje pojmenovat nějkolik příkazů, a pak je zavolat najednou.
  • Parametry funkce, hodnoty se kterými funkce pracuje, se zadávají v závorkách.
  • return ukončí funkci a vrátí hodnotu
{
  "data": {
    "sessionMaterial": {
      "id": "session-material:2018/snake-brno:intro:10",
      "title": "VlastnĂ­ funkce",
      "html": "\n          \n    \n\n    <h1>Vlastn&#xED; funkce</h1>\n<p>Pamatuje&#x161; na funkce <code>len()</code> a <code>print()</code>?\nJsou jako kouzeln&#xE1; za&#x159;&#xED;kadla z&#xA0;knihy v&#xE1;zan&#xE9; v&#xA0;k&#x16F;&#x17E;i: kdy&#x17E; v&#xED;&#x161; jak se jmenuj&#xED;\na um&#xED;&#x161; je spr&#xE1;vn&#x11B; napsat, n&#x11B;co pro tebe ud&#x11B;laj&#xED;.</p>\n<p>Te&#x10F; postoup&#xED;me na dal&#x161;&#xED; &#xFA;rove&#x148;: vymysl&#xED;me si vlastn&#xED; za&#x159;&#xED;kadla!\nJak? Budeme kombinovat p&#x159;&#xED;kazy, kter&#xE9; u&#x17E; zn&#xE1;me.</p>\n<p>T&#x159;eba funkce, kter&#xE1; t&#x11B; pozdrav&#xED;, by m&#x11B;la:</p>\n<ul>\n<li>Vypsat &#x201E;ahoj!&#x201C;</li>\n<li>Vypsat &#x201E;jak se m&#xE1;&#x161;?&#x201C;</li>\n</ul>\n<p>Definice funkce v&#xA0;Pythonu za&#x10D;&#xED;n&#xE1; kl&#xED;&#x10D;ov&#xFD;m slovem <code>def</code>,\nd&#xE1;le je uveden n&#xE1;zev a n&#xE1;sleduj&#xED; z&#xE1;vorky (zat&#xED;m pr&#xE1;zdn&#xE9;).\nPak je jako po <code>if</code> dvojte&#x10D;ka &#x2013; a odsazen&#xE9; p&#x159;&#xED;kazy,\nkter&#xE9; m&#xE1; funkce prov&#xE9;st.</p>\n<div class=\"highlight\"><pre><span></span><span class=\"k\">def</span> <span class=\"nf\">pozdrav</span><span class=\"p\">():</span>\n    <span class=\"k\">print</span><span class=\"p\">(</span><span class=\"s1\">&apos;Ahoj!&apos;</span><span class=\"p\">)</span>\n    <span class=\"k\">print</span><span class=\"p\">(</span><span class=\"s1\">&apos;Jak se m&#xE1;&#x161;?&apos;</span><span class=\"p\">)</span>\n</pre></div><p>Na&#x161;e prvn&#xED; funkce je p&#x159;ipravena!</p>\n<p>Kdy&#x17E; ale tenhle program spust&#xED;&#x161;, nic neud&#x11B;l&#xE1;.\nTo proto, &#x17E;e tohle je jen <em>definice</em> funkce.\nPython te&#x10F; v&#xED; jak pozdravit &#x2013; ale ne&#x159;eklo se, &#x17E;e to m&#xE1; ud&#x11B;lat!</p>\n<p>Na konec programu p&#x159;idej vol&#xE1;n&#xED;.\nTo u&#x17E; nen&#xED; sou&#x10D;&#xE1;st funkce, ale pokra&#x10D;ov&#xE1;n&#xED; samotn&#xE9;ho programu.\nProto nesm&#xED; b&#xFD;t odsazen&#xE9;:</p>\n<div class=\"highlight\"><pre><span></span><span class=\"k\">def</span> <span class=\"nf\">pozdrav</span><span class=\"p\">():</span>\n    <span class=\"k\">print</span><span class=\"p\">(</span><span class=\"s1\">&apos;Ahoj!&apos;</span><span class=\"p\">)</span>\n    <span class=\"k\">print</span><span class=\"p\">(</span><span class=\"s1\">&apos;Jak se m&#xE1;&#x161;?&apos;</span><span class=\"p\">)</span>\n\n<span class=\"n\">pozdrav</span><span class=\"p\">()</span>\n</pre></div><p>Co se stane, kdy&#x17E; funkci zavol&#xE1;&#x161; n&#x11B;kolikr&#xE1;t po sob&#x11B;?</p>\n<div class=\"highlight\"><pre><span></span><span class=\"k\">def</span> <span class=\"nf\">pozdrav</span><span class=\"p\">():</span>\n    <span class=\"k\">print</span><span class=\"p\">(</span><span class=\"s1\">&apos;Ahoj!&apos;</span><span class=\"p\">)</span>\n    <span class=\"k\">print</span><span class=\"p\">(</span><span class=\"s1\">&apos;Jak se m&#xE1;&#x161;?&apos;</span><span class=\"p\">)</span>\n\n<span class=\"n\">pozdrav</span><span class=\"p\">()</span>\n<span class=\"n\">pozdrav</span><span class=\"p\">()</span>\n<span class=\"n\">pozdrav</span><span class=\"p\">()</span>\n</pre></div><p>Co se stane, kdy&#x17E; vol&#xE1;n&#xED; d&#xE1;&#x161; <em>nad</em> definici funkce, m&#xED;sto na konec programu?</p>\n<div class=\"highlight\"><pre><span></span><span class=\"n\">pozdrav</span><span class=\"p\">()</span>\n\n<span class=\"k\">def</span> <span class=\"nf\">pozdrav</span><span class=\"p\">():</span>\n    <span class=\"k\">print</span><span class=\"p\">(</span><span class=\"s1\">&apos;Ahoj!&apos;</span><span class=\"p\">)</span>\n    <span class=\"k\">print</span><span class=\"p\">(</span><span class=\"s1\">&apos;Jak se m&#xE1;&#x161;?&apos;</span><span class=\"p\">)</span>\n</pre></div><div class=\"solution\" id=\"solution-0\">\n    <h3>&#x158;e&#x161;en&#xED;</h3>\n    <div class=\"solution-cover\">\n        <a href=\"/2018/snake-brno/fast-track/def/index/solutions/0/\"><span class=\"link-text\">Uk&#xE1;zat &#x159;e&#x161;en&#xED;</span></a>\n    </div>\n    <div class=\"solution-body\" aria-hidden=\"true\">\n        <div class=\"highlight\"><pre><span></span><span class=\"gt\">Traceback (most recent call last):</span>\n  File <span class=\"nb\">&quot;&lt;stdin&gt;&quot;</span>, line <span class=\"m\">1</span>, in <span class=\"n\">&lt;module&gt;</span>\n<span class=\"gr\">NameError</span>: <span class=\"n\">name &apos;pozdrav&apos; is not defined</span>\n</pre></div><p>Python si st&#x11B;&#x17E;uje na <code>NameError</code> &#x2013; nezn&#xE1; nic jm&#xE9;nem <code>pozdrav</code>.</p>\n<p>Python toti&#x17E; program &#x10D;te odzhora dol&#x16F;.\nA&#x17E; p&#x159;&#xED;kazem <code>def</code> se &#x201E;nau&#x10D;&#xED;&quot; jak zdravit.\nP&#x159;edt&#xED;m, ne&#x17E; se k&#xA0;p&#x159;&#xED;kazu <code>def</code> dostane, funkce neexistuje.</p>\n    </div>\n</div><h2>Parametry</h2>\n<p>Tvoje funkce se d&#xE1; volat jen jako <code>pozdrav()</code>.\nFunkce jako <code>len(&apos;slovo&apos;)</code> a <code>print(1 + 2)</code> um&#xED; nav&#xED;c pracovat s&#xA0;hodnotou.</p>\n<p>Po&#x10F;me napisa&#x165; funkciu, ktor&#xE1; &#x165;a pozdrav&#xED; menom.\n(U&#x13E;ah&#x10D;&#xED;me si to pou&#x17E;it&#xED;m jazyka, ktor&#xFD; nepou&#x17E;&#xED;va piaty p&#xE1;d.)</p>\n<div class=\"highlight\"><pre><span></span><span class=\"k\">def</span> <span class=\"nf\">pozdrav</span><span class=\"p\">(</span><span class=\"n\">meno</span><span class=\"p\">):</span>\n    <span class=\"k\">print</span><span class=\"p\">(</span><span class=\"s1\">&apos;Vitam &#x165;a,&apos;</span><span class=\"p\">,</span> <span class=\"n\">meno</span><span class=\"p\">)</span>\n\n<span class=\"n\">pozdrav</span><span class=\"p\">(</span><span class=\"s1\">&apos;Ola&apos;</span><span class=\"p\">)</span>\n<span class=\"n\">pozdrav</span><span class=\"p\">(</span><span class=\"s1\">&apos;So&#x148;a&apos;</span><span class=\"p\">)</span>\n<span class=\"n\">pozdrav</span><span class=\"p\">(</span><span class=\"s1\">&apos;Hubert&apos;</span><span class=\"p\">)</span>\n<span class=\"n\">pozdrav</span><span class=\"p\">(</span><span class=\"s1\">&apos;Ani&#x10D;ka&apos;</span><span class=\"p\">)</span>\n</pre></div><p>Jak to funguje?\nV&#xA0;definici funkce uvede&#x161; z&#xE1;vork&#xE1;ch <em>parametr</em> &#x2013; jm&#xE9;no prom&#x11B;nn&#xE9; se kterou bude\nfunkce pracovat.\nHodnotu pro tenhle parametr pak zad&#xE1;&#x161; p&#x159;i vol&#xE1;n&#xED; funkce.</p>\n<p>Zvl&#xE1;dne&#x161; napsat program, kter&#xFD; se zept&#xE1; na jm&#xE9;no a pak t&#x11B; pozdrav&#xED;?</p>\n<div class=\"solution\" id=\"solution-1\">\n    <h3>&#x158;e&#x161;en&#xED;</h3>\n    <div class=\"solution-cover\">\n        <a href=\"/2018/snake-brno/fast-track/def/index/solutions/1/\"><span class=\"link-text\">Uk&#xE1;zat &#x159;e&#x161;en&#xED;</span></a>\n    </div>\n    <div class=\"solution-body\" aria-hidden=\"true\">\n        <div class=\"highlight\"><pre><span></span><span class=\"k\">def</span> <span class=\"nf\">pozdrav</span><span class=\"p\">(</span><span class=\"n\">meno</span><span class=\"p\">):</span>\n    <span class=\"k\">print</span><span class=\"p\">(</span><span class=\"s1\">&apos;Vitam &#x165;a,&apos;</span><span class=\"p\">,</span> <span class=\"n\">meno</span><span class=\"p\">)</span>\n\n<span class=\"n\">pozdrav</span><span class=\"p\">(</span><span class=\"nb\">input</span><span class=\"p\">(</span><span class=\"s1\">&apos;Jak se jmenuje&#x161;? &apos;</span><span class=\"p\">))</span>\n</pre></div>\n    </div>\n</div><p>Co se stane, kdy&#x17E; funkci zavol&#xE1;&#x161; bez hodnoty pro parametr?</p>\n<div class=\"solution\" id=\"solution-2\">\n    <h3>&#x158;e&#x161;en&#xED;</h3>\n    <div class=\"solution-cover\">\n        <a href=\"/2018/snake-brno/fast-track/def/index/solutions/2/\"><span class=\"link-text\">Uk&#xE1;zat &#x159;e&#x161;en&#xED;</span></a>\n    </div>\n    <div class=\"solution-body\" aria-hidden=\"true\">\n        <div class=\"highlight\"><pre><span></span><span class=\"gt\">Traceback (most recent call last):</span>\n  File <span class=\"nb\">&quot;&lt;stdin&gt;&quot;</span>, line <span class=\"m\">9</span>, in <span class=\"n\">&lt;module&gt;</span>\n<span class=\"gr\">TypeError</span>: <span class=\"n\">pozdrav() missing 1 required positional argument: &apos;meno&apos;</span>\n</pre></div><p>Python si st&#x11B;&#x17E;uje na <code>TypeError</code> &#x2013; funkce <code>pozdrav</code> nedostala povinn&#xFD;\nargument <code>meno</code>.</p>\n    </div>\n</div><p>Funkce m&#x16F;&#x17E;e obsahovat jak&#xFD;koli k&#xF3;d.\nT&#x159;eba podm&#xED;n&#x11B;n&#xFD; p&#x159;&#xED;kaz, <code>if</code>.\nP&#x159;&#xED;kazy po <code>if</code> je pak pot&#x159;eba odsatit o <em>dal&#x161;&#xED;</em> &#x10D;ty&#x159;i mezery:</p>\n<div class=\"highlight\"><pre><span></span><span class=\"k\">def</span> <span class=\"nf\">pozdrav</span><span class=\"p\">(</span><span class=\"n\">meno</span><span class=\"p\">):</span>\n    <span class=\"k\">print</span><span class=\"p\">(</span><span class=\"s1\">&apos;Vitam &#x165;a,&apos;</span><span class=\"p\">,</span> <span class=\"n\">meno</span><span class=\"p\">)</span>\n    <span class=\"k\">if</span> <span class=\"n\">meno</span> <span class=\"o\">==</span> <span class=\"s1\">&apos;Ola&apos;</span><span class=\"p\">:</span>\n        <span class=\"k\">print</span><span class=\"p\">(</span><span class=\"s1\">&apos;Ty um&#xED;&#x161; programova&#x165;!&apos;</span><span class=\"p\">)</span>\n\n<span class=\"n\">pozdrav</span><span class=\"p\">(</span><span class=\"s1\">&apos;Hubert&apos;</span><span class=\"p\">)</span>\n<span class=\"n\">pozdrav</span><span class=\"p\">(</span><span class=\"s1\">&apos;Ola&apos;</span><span class=\"p\">)</span>\n<span class=\"n\">pozdrav</span><span class=\"p\">(</span><span class=\"s1\">&apos;So&#x148;a&apos;</span><span class=\"p\">)</span>\n</pre></div><h2>Vracen&#xED;</h2>\n<p>Dal&#x161;&#xED; v&#x11B;c, kterou funkce jako <code>len</code> um&#xED;, je <em>vr&#xE1;tit</em> v&#xFD;sledek:</p>\n<div class=\"highlight\"><pre><span></span><span class=\"n\">delka</span> <span class=\"o\">=</span> <span class=\"nb\">len</span><span class=\"p\">(</span><span class=\"s1\">&apos;Ola&apos;</span><span class=\"p\">)</span>\n<span class=\"k\">print</span><span class=\"p\">(</span><span class=\"n\">delka</span><span class=\"p\">)</span>        <span class=\"c1\"># nap&#xED;&#x161;e: 3</span>\n</pre></div><p>Jak na to?\nVe funkci m&#x16F;&#x17E;e&#x161; pou&#x17E;&#xED;t p&#x159;&#xED;kaz <code>return</code>, kter&#xFD; funkci okam&#x17E;it&#x11B; ukon&#x10D;&#xED;\na vr&#xE1;t&#xED; danou hodnotu:</p>\n<div class=\"highlight\"><pre><span></span><span class=\"k\">def</span> <span class=\"nf\">dvojnasobek</span><span class=\"p\">(</span><span class=\"n\">x</span><span class=\"p\">):</span>\n    <span class=\"k\">return</span> <span class=\"n\">x</span> <span class=\"o\">*</span> <span class=\"mi\">2</span>\n\n<span class=\"k\">print</span><span class=\"p\">(</span><span class=\"n\">dvojnasobek</span><span class=\"p\">(</span><span class=\"mi\">42</span><span class=\"p\">))</span>\n</pre></div><p>Zkus napsat funkci, kter&#xE1; p&#xE1;t&#xFD; p&#xE1;d n&#x11B;jak&#xE9;ho jm&#xE9;na, t&#x159;eba:</p>\n<ul>\n<li><code>paty_pad(&apos;Ola&apos;)</code> &#x2192; &apos;Olo&apos;</li>\n<li><code>paty_pad(&apos;So&#x148;a&apos;)</code> &#x2192; &apos;So&#x148;o&apos;</li>\n<li><code>paty_pad(&apos;Hubert&apos;)</code> &#x2192; &apos;Huberte&apos;</li>\n</ul>\n<p>Tohle je velice slo&#x17E;it&#xFD; &#xFA;kol, tak si ho trochu zjednodu&#x161;&#xED;me.\nFunkce by m&#x11B;la d&#x11B;lat tohle:</p>\n<ul>\n<li>Pokud jm&#xE9;no je &#x201E;Hubert&#x201C;:<ul>\n<li>vr&#xE1;t&#xED; <code>Huberte</code></li>\n</ul>\n</li>\n<li>Pokud jm&#xE9;no kon&#x10D;&#xED; na <code>a</code>:<ul>\n<li>vr&#xE1;t&#xED; jm&#xE9;no s <code>o</code> m&#xED;sto posledn&#xED;ho p&#xED;smenka</li>\n</ul>\n</li>\n<li>Jinak:<ul>\n<li>Vr&#xE1;t&#xED; p&#x16F;vodn&#xED; jm&#xE9;no. (U&#x17E;ivatel si toho snad nev&#x161;imne.)</li>\n</ul>\n</li>\n</ul>\n<div class=\"highlight\"><pre><span></span><span class=\"k\">def</span> <span class=\"nf\">paty_pad</span><span class=\"p\">(</span><span class=\"n\">jmeno</span><span class=\"p\">):</span>\n    <span class=\"k\">if</span> <span class=\"n\">jmeno</span> <span class=\"o\">==</span> <span class=\"s1\">&apos;Hubert&apos;</span><span class=\"p\">:</span>\n        <span class=\"k\">return</span> <span class=\"s1\">&apos;Huberte&apos;</span>\n    <span class=\"k\">elif</span> <span class=\"n\">jmeno</span><span class=\"p\">[</span><span class=\"o\">-</span><span class=\"mi\">1</span><span class=\"p\">]</span> <span class=\"o\">==</span> <span class=\"s1\">&apos;a&apos;</span><span class=\"p\">:</span>\n        <span class=\"k\">return</span> <span class=\"n\">jmeno</span><span class=\"p\">[:</span><span class=\"o\">-</span><span class=\"mi\">1</span><span class=\"p\">]</span> <span class=\"o\">+</span> <span class=\"s1\">&apos;o&apos;</span>\n    <span class=\"k\">else</span><span class=\"p\">:</span>\n        <span class=\"k\">return</span> <span class=\"n\">jmeno</span>\n</pre></div><p>Dok&#xE1;&#x17E;e&#x161; zm&#x11B;nit funkci <code>pozdrav</code>, aby zdravila v&#xA0;&#x10D;e&#x161;tin&#x11B;?</p>\n<div class=\"solution\" id=\"solution-3\">\n    <h3>&#x158;e&#x161;en&#xED;</h3>\n    <div class=\"solution-cover\">\n        <a href=\"/2018/snake-brno/fast-track/def/index/solutions/3/\"><span class=\"link-text\">Uk&#xE1;zat &#x159;e&#x161;en&#xED;</span></a>\n    </div>\n    <div class=\"solution-body\" aria-hidden=\"true\">\n        <div class=\"highlight\"><pre><span></span><span class=\"k\">def</span> <span class=\"nf\">pozdrav</span><span class=\"p\">(</span><span class=\"n\">jmeno</span><span class=\"p\">):</span>\n    <span class=\"k\">print</span><span class=\"p\">(</span><span class=\"s1\">&apos;V&#xED;tam t&#x11B;,&apos;</span><span class=\"p\">,</span> <span class=\"n\">paty_pad</span><span class=\"p\">(</span><span class=\"n\">jmeno</span><span class=\"p\">))</span>\n\n<span class=\"n\">pozdrav</span><span class=\"p\">(</span><span class=\"s1\">&apos;Hubert&apos;</span><span class=\"p\">)</span>\n<span class=\"n\">pozdrav</span><span class=\"p\">(</span><span class=\"s1\">&apos;Ola&apos;</span><span class=\"p\">)</span>\n<span class=\"n\">pozdrav</span><span class=\"p\">(</span><span class=\"s1\">&apos;So&#x148;a&apos;</span><span class=\"p\">)</span>\n</pre></div>\n    </div>\n</div><h2>Shrnut&#xED;</h2>\n<p>Co bylo nov&#xE9;ho tentokr&#xE1;t?</p>\n<ul>\n<li><strong>Funkce</strong> umo&#x17E;&#x148;uje pojmenovat n&#x11B;jkolik p&#x159;&#xED;kaz&#x16F;, a pak je zavolat najednou.</li>\n<li><strong>Parametry</strong> funkce, hodnoty se kter&#xFD;mi funkce pracuje,\nse zad&#xE1;vaj&#xED; v&#xA0;z&#xE1;vork&#xE1;ch.</li>\n<li><code>return</code> ukon&#x10D;&#xED; funkci a vr&#xE1;t&#xED; hodnotu</li>\n</ul>\n\n\n        "
    }
  }
}