Feedback k domácím projektům

Použití with

  • with nám může ušetřit práci i starosti s přemýšlením nad uzavřením otevřeného souboru
  • čtení celého souboru nemusíme dělat jen přes cyklus for, ale můžeme jej přečíst celý najednou metodou .read()
In [ ]:
soubor = open("soubor.txt", mode="r", encoding='utf-8')
novy_soubor = open("soubor2.txt", mode="w", encoding='utf-8')

for text in soubor:
    novy_soubor.write(text) 

print ("Soubor zkopírován.")

soubor.close()
novy_soubor.close()
In [ ]:
with open("soubor.txt", mode="r", encoding='utf-8') as soubor:
    with open("soubor2.txt", mode="w", encoding='utf-8') as novy_soubor:
        novy_soubor.write(soubor.read()) 
print ("Soubor zkopírován.")

Ukázkový příklad porušení DRY

Proč se tolik opakovat, když můžeme počet pokusů použít přímo, převést jej na řetězec a jen připojením přípony z něj udělat název souboru?

In [ ]:
def vykresliPanacka(pocet_pokusu):
    "Funkce na základě neúspěšných pokusů vypisuje obrázky, dokud hra neskončí."
    if pocet_pokusu == 1:
        vstup=open("1.txt", encoding='utf-8')
        obrazek = vstup.read()
        print(obrazek)
        vstup.close()
    elif pocet_pokusu == 2:
        vstup=open("2.txt", encoding='utf-8')
        obrazek = vstup.read()
        print(obrazek)
        vstup.close()
    elif pocet_pokusu == 3:
        vstup=open("3.txt")
        obrazek = vstup.read()
        print(obrazek)
        vstup.close()
    elif pocet_pokusu == 4:
        vstup=open("4.txt")
        obrazek = vstup.read()
        print(obrazek)
        vstup.close()
    elif pocet_pokusu == 5:
        vstup=open("5.txt")
        obrazek = vstup.read()
        print(obrazek)
        vstup.close()
    elif pocet_pokusu == 6:
        vstup=open("6.txt")
        obrazek = vstup.read()
        print(obrazek)
        vstup.close()
    elif pocet_pokusu == 7:
        vstup=open("7.txt")
        obrazek = vstup.read()
        print(obrazek)
        vstup.close()
    elif pocet_pokusu == 8:
        vstup=open("8.txt")
        obrazek = vstup.read()
        print(obrazek)
        vstup.close()
    elif pocet_pokusu == 9:
        vstup=open("9.txt")
        obrazek = vstup.read()
        print(obrazek)
    else:
        vstup=open("10.txt")
        obrazek = vstup.read()
        print(obrazek)
        vstup.close()
        print ("Konec hry, prohrál jsi!")
In [ ]:
def vykresliPanacka(pocet_pokusu):
    "Funkce na základě neúspěšných pokusů vypisuje obrázky, dokud hra neskončí."
    with open(str(pocet_pokusu) + ".txt", encoding='utf-8') as soubor:
        print(soubor.read())

Šibenice a vyplnění jednoho znaku do hádaného slova

In [5]:
def vyplnZnak(hadanka, znak, tajneSlovo):
    for index in range(len(tajneSlovo)):
        if znak == tajneSlovo[index]:
            hadanka = hadanka[:index] + znak + hadanka[index + 1:]
    return hadanka

Drobnosti

  • Dokumentační řetězce se píšou hned pod název funkce a nikde jinde
  • Nepoužívat kapitálky pro názvy proměnných. Většinou to není potřeba.
  • Soubor nemusí mít příponu a rozhodně to nemusí být vždy .txt
  • Používání knihoven pro kopírování souborů nebylo cílem, ale snaha se cení.

Martinovy prosby

  • Nebalte do archívů každou úlohu zvlášť. Jeden archiv bohatě postačí.
  • Neposílejte nám složky s virtuálním prostředím.

Obecné rady, pochvaly a doporučení

  • Velká pochvala za úkoly na githubu
  • Pochvala za hledání pomoci na internetu a používání nových věcí
  • Pochvala těm, kdo měli obrázky šibenice a japonské abecedy ve zvláštním souboru a ne přímo v kódu
  • Pochvala za psaní komentářů k funkcím a složitějšímu kódu
{
  "data": {
    "sessionMaterial": {
      "id": "session-material:2019/pyladies-ostrava-jaro:file:4",
      "title": "Zpětná vazba k domácím projektům",
      "html": "\n          \n    \n\n    <div class=\"cell border-box-sizing text_cell rendered\"><div class=\"prompt input_prompt\">\n</div><div class=\"inner_cell\">\n<div class=\"text_cell_render border-box-sizing rendered_html\">\n<h1>Feedback k dom&#xE1;c&#xED;m projekt&#x16F;m</h1>\n</div>\n</div>\n</div>\n<div class=\"cell border-box-sizing text_cell rendered\"><div class=\"prompt input_prompt\">\n</div><div class=\"inner_cell\">\n<div class=\"text_cell_render border-box-sizing rendered_html\">\n<h2>Pou&#x17E;it&#xED; <em>with</em></h2>\n</div>\n</div>\n</div>\n<div class=\"cell border-box-sizing text_cell rendered\"><div class=\"prompt input_prompt\">\n</div><div class=\"inner_cell\">\n<div class=\"text_cell_render border-box-sizing rendered_html\">\n<ul>\n<li><em>with</em> n&#xE1;m m&#x16F;&#x17E;e u&#x161;et&#x159;it pr&#xE1;ci i starosti s p&#x159;em&#xFD;&#x161;len&#xED;m nad uzav&#x159;en&#xED;m otev&#x159;en&#xE9;ho souboru</li>\n<li>&#x10D;ten&#xED; cel&#xE9;ho souboru nemus&#xED;me d&#x11B;lat jen p&#x159;es cyklus for, ale m&#x16F;&#x17E;eme jej p&#x159;e&#x10D;&#xED;st cel&#xFD; najednou metodou <em>.read()</em></li>\n</ul>\n</div>\n</div>\n</div>\n<div class=\"cell border-box-sizing code_cell rendered\">\n<div class=\"input\">\n<div class=\"prompt input_prompt\">In&#xA0;[&#xA0;]:</div>\n<div class=\"inner_cell\">\n    <div class=\"input_area\">\n<div class=\" highlight hl-ipython3\"><pre><span></span><span class=\"n\">soubor</span> <span class=\"o\">=</span> <span class=\"nb\">open</span><span class=\"p\">(</span><span class=\"s2\">&quot;soubor.txt&quot;</span><span class=\"p\">,</span> <span class=\"n\">mode</span><span class=\"o\">=</span><span class=\"s2\">&quot;r&quot;</span><span class=\"p\">,</span> <span class=\"n\">encoding</span><span class=\"o\">=</span><span class=\"s1\">&apos;utf-8&apos;</span><span class=\"p\">)</span>\n<span class=\"n\">novy_soubor</span> <span class=\"o\">=</span> <span class=\"nb\">open</span><span class=\"p\">(</span><span class=\"s2\">&quot;soubor2.txt&quot;</span><span class=\"p\">,</span> <span class=\"n\">mode</span><span class=\"o\">=</span><span class=\"s2\">&quot;w&quot;</span><span class=\"p\">,</span> <span class=\"n\">encoding</span><span class=\"o\">=</span><span class=\"s1\">&apos;utf-8&apos;</span><span class=\"p\">)</span>\n\n<span class=\"k\">for</span> <span class=\"n\">text</span> <span class=\"ow\">in</span> <span class=\"n\">soubor</span><span class=\"p\">:</span>\n    <span class=\"n\">novy_soubor</span><span class=\"o\">.</span><span class=\"n\">write</span><span class=\"p\">(</span><span class=\"n\">text</span><span class=\"p\">)</span> \n\n<span class=\"nb\">print</span> <span class=\"p\">(</span><span class=\"s2\">&quot;Soubor zkop&#xED;rov&#xE1;n.&quot;</span><span class=\"p\">)</span>\n\n<span class=\"n\">soubor</span><span class=\"o\">.</span><span class=\"n\">close</span><span class=\"p\">()</span>\n<span class=\"n\">novy_soubor</span><span class=\"o\">.</span><span class=\"n\">close</span><span class=\"p\">()</span>\n</pre></div>\n\n    </div>\n</div>\n</div>\n\n</div>\n<div class=\"cell border-box-sizing code_cell rendered\">\n<div class=\"input\">\n<div class=\"prompt input_prompt\">In&#xA0;[&#xA0;]:</div>\n<div class=\"inner_cell\">\n    <div class=\"input_area\">\n<div class=\" highlight hl-ipython3\"><pre><span></span><span class=\"k\">with</span> <span class=\"nb\">open</span><span class=\"p\">(</span><span class=\"s2\">&quot;soubor.txt&quot;</span><span class=\"p\">,</span> <span class=\"n\">mode</span><span class=\"o\">=</span><span class=\"s2\">&quot;r&quot;</span><span class=\"p\">,</span> <span class=\"n\">encoding</span><span class=\"o\">=</span><span class=\"s1\">&apos;utf-8&apos;</span><span class=\"p\">)</span> <span class=\"k\">as</span> <span class=\"n\">soubor</span><span class=\"p\">:</span>\n    <span class=\"k\">with</span> <span class=\"nb\">open</span><span class=\"p\">(</span><span class=\"s2\">&quot;soubor2.txt&quot;</span><span class=\"p\">,</span> <span class=\"n\">mode</span><span class=\"o\">=</span><span class=\"s2\">&quot;w&quot;</span><span class=\"p\">,</span> <span class=\"n\">encoding</span><span class=\"o\">=</span><span class=\"s1\">&apos;utf-8&apos;</span><span class=\"p\">)</span> <span class=\"k\">as</span> <span class=\"n\">novy_soubor</span><span class=\"p\">:</span>\n        <span class=\"n\">novy_soubor</span><span class=\"o\">.</span><span class=\"n\">write</span><span class=\"p\">(</span><span class=\"n\">soubor</span><span class=\"o\">.</span><span class=\"n\">read</span><span class=\"p\">())</span> \n<span class=\"nb\">print</span> <span class=\"p\">(</span><span class=\"s2\">&quot;Soubor zkop&#xED;rov&#xE1;n.&quot;</span><span class=\"p\">)</span>\n</pre></div>\n\n    </div>\n</div>\n</div>\n\n</div>\n<div class=\"cell border-box-sizing text_cell rendered\"><div class=\"prompt input_prompt\">\n</div><div class=\"inner_cell\">\n<div class=\"text_cell_render border-box-sizing rendered_html\">\n<h2>Uk&#xE1;zkov&#xFD; p&#x159;&#xED;klad poru&#x161;en&#xED; DRY</h2>\n</div>\n</div>\n</div>\n<div class=\"cell border-box-sizing text_cell rendered\"><div class=\"prompt input_prompt\">\n</div><div class=\"inner_cell\">\n<div class=\"text_cell_render border-box-sizing rendered_html\">\n<p>Pro&#x10D; se tolik opakovat, kdy&#x17E; m&#x16F;&#x17E;eme po&#x10D;et pokus&#x16F; pou&#x17E;&#xED;t p&#x159;&#xED;mo, p&#x159;ev&#xE9;st jej na &#x159;et&#x11B;zec a jen p&#x159;ipojen&#xED;m p&#x159;&#xED;pony z n&#x11B;j ud&#x11B;lat n&#xE1;zev souboru?</p>\n</div>\n</div>\n</div>\n<div class=\"cell border-box-sizing code_cell rendered\">\n<div class=\"input\">\n<div class=\"prompt input_prompt\">In&#xA0;[&#xA0;]:</div>\n<div class=\"inner_cell\">\n    <div class=\"input_area\">\n<div class=\" highlight hl-ipython3\"><pre><span></span><span class=\"k\">def</span> <span class=\"nf\">vykresliPanacka</span><span class=\"p\">(</span><span class=\"n\">pocet_pokusu</span><span class=\"p\">):</span>\n    <span class=\"s2\">&quot;Funkce na z&#xE1;klad&#x11B; ne&#xFA;sp&#x11B;&#x161;n&#xFD;ch pokus&#x16F; vypisuje obr&#xE1;zky, dokud hra neskon&#x10D;&#xED;.&quot;</span>\n    <span class=\"k\">if</span> <span class=\"n\">pocet_pokusu</span> <span class=\"o\">==</span> <span class=\"mi\">1</span><span class=\"p\">:</span>\n        <span class=\"n\">vstup</span><span class=\"o\">=</span><span class=\"nb\">open</span><span class=\"p\">(</span><span class=\"s2\">&quot;1.txt&quot;</span><span class=\"p\">,</span> <span class=\"n\">encoding</span><span class=\"o\">=</span><span class=\"s1\">&apos;utf-8&apos;</span><span class=\"p\">)</span>\n        <span class=\"n\">obrazek</span> <span class=\"o\">=</span> <span class=\"n\">vstup</span><span class=\"o\">.</span><span class=\"n\">read</span><span class=\"p\">()</span>\n        <span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">obrazek</span><span class=\"p\">)</span>\n        <span class=\"n\">vstup</span><span class=\"o\">.</span><span class=\"n\">close</span><span class=\"p\">()</span>\n    <span class=\"k\">elif</span> <span class=\"n\">pocet_pokusu</span> <span class=\"o\">==</span> <span class=\"mi\">2</span><span class=\"p\">:</span>\n        <span class=\"n\">vstup</span><span class=\"o\">=</span><span class=\"nb\">open</span><span class=\"p\">(</span><span class=\"s2\">&quot;2.txt&quot;</span><span class=\"p\">,</span> <span class=\"n\">encoding</span><span class=\"o\">=</span><span class=\"s1\">&apos;utf-8&apos;</span><span class=\"p\">)</span>\n        <span class=\"n\">obrazek</span> <span class=\"o\">=</span> <span class=\"n\">vstup</span><span class=\"o\">.</span><span class=\"n\">read</span><span class=\"p\">()</span>\n        <span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">obrazek</span><span class=\"p\">)</span>\n        <span class=\"n\">vstup</span><span class=\"o\">.</span><span class=\"n\">close</span><span class=\"p\">()</span>\n    <span class=\"k\">elif</span> <span class=\"n\">pocet_pokusu</span> <span class=\"o\">==</span> <span class=\"mi\">3</span><span class=\"p\">:</span>\n        <span class=\"n\">vstup</span><span class=\"o\">=</span><span class=\"nb\">open</span><span class=\"p\">(</span><span class=\"s2\">&quot;3.txt&quot;</span><span class=\"p\">)</span>\n        <span class=\"n\">obrazek</span> <span class=\"o\">=</span> <span class=\"n\">vstup</span><span class=\"o\">.</span><span class=\"n\">read</span><span class=\"p\">()</span>\n        <span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">obrazek</span><span class=\"p\">)</span>\n        <span class=\"n\">vstup</span><span class=\"o\">.</span><span class=\"n\">close</span><span class=\"p\">()</span>\n    <span class=\"k\">elif</span> <span class=\"n\">pocet_pokusu</span> <span class=\"o\">==</span> <span class=\"mi\">4</span><span class=\"p\">:</span>\n        <span class=\"n\">vstup</span><span class=\"o\">=</span><span class=\"nb\">open</span><span class=\"p\">(</span><span class=\"s2\">&quot;4.txt&quot;</span><span class=\"p\">)</span>\n        <span class=\"n\">obrazek</span> <span class=\"o\">=</span> <span class=\"n\">vstup</span><span class=\"o\">.</span><span class=\"n\">read</span><span class=\"p\">()</span>\n        <span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">obrazek</span><span class=\"p\">)</span>\n        <span class=\"n\">vstup</span><span class=\"o\">.</span><span class=\"n\">close</span><span class=\"p\">()</span>\n    <span class=\"k\">elif</span> <span class=\"n\">pocet_pokusu</span> <span class=\"o\">==</span> <span class=\"mi\">5</span><span class=\"p\">:</span>\n        <span class=\"n\">vstup</span><span class=\"o\">=</span><span class=\"nb\">open</span><span class=\"p\">(</span><span class=\"s2\">&quot;5.txt&quot;</span><span class=\"p\">)</span>\n        <span class=\"n\">obrazek</span> <span class=\"o\">=</span> <span class=\"n\">vstup</span><span class=\"o\">.</span><span class=\"n\">read</span><span class=\"p\">()</span>\n        <span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">obrazek</span><span class=\"p\">)</span>\n        <span class=\"n\">vstup</span><span class=\"o\">.</span><span class=\"n\">close</span><span class=\"p\">()</span>\n    <span class=\"k\">elif</span> <span class=\"n\">pocet_pokusu</span> <span class=\"o\">==</span> <span class=\"mi\">6</span><span class=\"p\">:</span>\n        <span class=\"n\">vstup</span><span class=\"o\">=</span><span class=\"nb\">open</span><span class=\"p\">(</span><span class=\"s2\">&quot;6.txt&quot;</span><span class=\"p\">)</span>\n        <span class=\"n\">obrazek</span> <span class=\"o\">=</span> <span class=\"n\">vstup</span><span class=\"o\">.</span><span class=\"n\">read</span><span class=\"p\">()</span>\n        <span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">obrazek</span><span class=\"p\">)</span>\n        <span class=\"n\">vstup</span><span class=\"o\">.</span><span class=\"n\">close</span><span class=\"p\">()</span>\n    <span class=\"k\">elif</span> <span class=\"n\">pocet_pokusu</span> <span class=\"o\">==</span> <span class=\"mi\">7</span><span class=\"p\">:</span>\n        <span class=\"n\">vstup</span><span class=\"o\">=</span><span class=\"nb\">open</span><span class=\"p\">(</span><span class=\"s2\">&quot;7.txt&quot;</span><span class=\"p\">)</span>\n        <span class=\"n\">obrazek</span> <span class=\"o\">=</span> <span class=\"n\">vstup</span><span class=\"o\">.</span><span class=\"n\">read</span><span class=\"p\">()</span>\n        <span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">obrazek</span><span class=\"p\">)</span>\n        <span class=\"n\">vstup</span><span class=\"o\">.</span><span class=\"n\">close</span><span class=\"p\">()</span>\n    <span class=\"k\">elif</span> <span class=\"n\">pocet_pokusu</span> <span class=\"o\">==</span> <span class=\"mi\">8</span><span class=\"p\">:</span>\n        <span class=\"n\">vstup</span><span class=\"o\">=</span><span class=\"nb\">open</span><span class=\"p\">(</span><span class=\"s2\">&quot;8.txt&quot;</span><span class=\"p\">)</span>\n        <span class=\"n\">obrazek</span> <span class=\"o\">=</span> <span class=\"n\">vstup</span><span class=\"o\">.</span><span class=\"n\">read</span><span class=\"p\">()</span>\n        <span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">obrazek</span><span class=\"p\">)</span>\n        <span class=\"n\">vstup</span><span class=\"o\">.</span><span class=\"n\">close</span><span class=\"p\">()</span>\n    <span class=\"k\">elif</span> <span class=\"n\">pocet_pokusu</span> <span class=\"o\">==</span> <span class=\"mi\">9</span><span class=\"p\">:</span>\n        <span class=\"n\">vstup</span><span class=\"o\">=</span><span class=\"nb\">open</span><span class=\"p\">(</span><span class=\"s2\">&quot;9.txt&quot;</span><span class=\"p\">)</span>\n        <span class=\"n\">obrazek</span> <span class=\"o\">=</span> <span class=\"n\">vstup</span><span class=\"o\">.</span><span class=\"n\">read</span><span class=\"p\">()</span>\n        <span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">obrazek</span><span class=\"p\">)</span>\n    <span class=\"k\">else</span><span class=\"p\">:</span>\n        <span class=\"n\">vstup</span><span class=\"o\">=</span><span class=\"nb\">open</span><span class=\"p\">(</span><span class=\"s2\">&quot;10.txt&quot;</span><span class=\"p\">)</span>\n        <span class=\"n\">obrazek</span> <span class=\"o\">=</span> <span class=\"n\">vstup</span><span class=\"o\">.</span><span class=\"n\">read</span><span class=\"p\">()</span>\n        <span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">obrazek</span><span class=\"p\">)</span>\n        <span class=\"n\">vstup</span><span class=\"o\">.</span><span class=\"n\">close</span><span class=\"p\">()</span>\n        <span class=\"nb\">print</span> <span class=\"p\">(</span><span class=\"s2\">&quot;Konec hry, prohr&#xE1;l jsi!&quot;</span><span class=\"p\">)</span>\n</pre></div>\n\n    </div>\n</div>\n</div>\n\n</div>\n<div class=\"cell border-box-sizing code_cell rendered\">\n<div class=\"input\">\n<div class=\"prompt input_prompt\">In&#xA0;[&#xA0;]:</div>\n<div class=\"inner_cell\">\n    <div class=\"input_area\">\n<div class=\" highlight hl-ipython3\"><pre><span></span><span class=\"k\">def</span> <span class=\"nf\">vykresliPanacka</span><span class=\"p\">(</span><span class=\"n\">pocet_pokusu</span><span class=\"p\">):</span>\n    <span class=\"s2\">&quot;Funkce na z&#xE1;klad&#x11B; ne&#xFA;sp&#x11B;&#x161;n&#xFD;ch pokus&#x16F; vypisuje obr&#xE1;zky, dokud hra neskon&#x10D;&#xED;.&quot;</span>\n    <span class=\"k\">with</span> <span class=\"nb\">open</span><span class=\"p\">(</span><span class=\"nb\">str</span><span class=\"p\">(</span><span class=\"n\">pocet_pokusu</span><span class=\"p\">)</span> <span class=\"o\">+</span> <span class=\"s2\">&quot;.txt&quot;</span><span class=\"p\">,</span> <span class=\"n\">encoding</span><span class=\"o\">=</span><span class=\"s1\">&apos;utf-8&apos;</span><span class=\"p\">)</span> <span class=\"k\">as</span> <span class=\"n\">soubor</span><span class=\"p\">:</span>\n        <span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">soubor</span><span class=\"o\">.</span><span class=\"n\">read</span><span class=\"p\">())</span>\n</pre></div>\n\n    </div>\n</div>\n</div>\n\n</div>\n<div class=\"cell border-box-sizing text_cell rendered\"><div class=\"prompt input_prompt\">\n</div><div class=\"inner_cell\">\n<div class=\"text_cell_render border-box-sizing rendered_html\">\n<h2>&#x160;ibenice a vypln&#x11B;n&#xED; jednoho znaku do h&#xE1;dan&#xE9;ho slova</h2>\n</div>\n</div>\n</div>\n<div class=\"cell border-box-sizing code_cell rendered\">\n<div class=\"input\">\n<div class=\"prompt input_prompt\">In&#xA0;[5]:</div>\n<div class=\"inner_cell\">\n    <div class=\"input_area\">\n<div class=\" highlight hl-ipython3\"><pre><span></span><span class=\"k\">def</span> <span class=\"nf\">vyplnZnak</span><span class=\"p\">(</span><span class=\"n\">hadanka</span><span class=\"p\">,</span> <span class=\"n\">znak</span><span class=\"p\">,</span> <span class=\"n\">tajneSlovo</span><span class=\"p\">):</span>\n    <span class=\"k\">for</span> <span class=\"n\">index</span> <span class=\"ow\">in</span> <span class=\"nb\">range</span><span class=\"p\">(</span><span class=\"nb\">len</span><span class=\"p\">(</span><span class=\"n\">tajneSlovo</span><span class=\"p\">)):</span>\n        <span class=\"k\">if</span> <span class=\"n\">znak</span> <span class=\"o\">==</span> <span class=\"n\">tajneSlovo</span><span class=\"p\">[</span><span class=\"n\">index</span><span class=\"p\">]:</span>\n            <span class=\"n\">hadanka</span> <span class=\"o\">=</span> <span class=\"n\">hadanka</span><span class=\"p\">[:</span><span class=\"n\">index</span><span class=\"p\">]</span> <span class=\"o\">+</span> <span class=\"n\">znak</span> <span class=\"o\">+</span> <span class=\"n\">hadanka</span><span class=\"p\">[</span><span class=\"n\">index</span> <span class=\"o\">+</span> <span class=\"mi\">1</span><span class=\"p\">:]</span>\n    <span class=\"k\">return</span> <span class=\"n\">hadanka</span>\n</pre></div>\n\n    </div>\n</div>\n</div>\n\n</div>\n<div class=\"cell border-box-sizing text_cell rendered\"><div class=\"prompt input_prompt\">\n</div><div class=\"inner_cell\">\n<div class=\"text_cell_render border-box-sizing rendered_html\">\n<h2>Drobnosti</h2>\n</div>\n</div>\n</div>\n<div class=\"cell border-box-sizing text_cell rendered\"><div class=\"prompt input_prompt\">\n</div><div class=\"inner_cell\">\n<div class=\"text_cell_render border-box-sizing rendered_html\">\n<ul>\n<li>Dokumenta&#x10D;n&#xED; &#x159;et&#x11B;zce se p&#xED;&#x161;ou hned pod n&#xE1;zev funkce a nikde jinde</li>\n<li>Nepou&#x17E;&#xED;vat kapit&#xE1;lky pro n&#xE1;zvy prom&#x11B;nn&#xFD;ch. V&#x11B;t&#x161;inou to nen&#xED; pot&#x159;eba.</li>\n<li>Soubor nemus&#xED; m&#xED;t p&#x159;&#xED;ponu a rozhodn&#x11B; to nemus&#xED; b&#xFD;t v&#x17E;dy <code>.txt</code></li>\n<li>Pou&#x17E;&#xED;v&#xE1;n&#xED; knihoven pro kop&#xED;rov&#xE1;n&#xED; soubor&#x16F; nebylo c&#xED;lem, ale snaha se cen&#xED;.</li>\n</ul>\n</div>\n</div>\n</div>\n<div class=\"cell border-box-sizing text_cell rendered\"><div class=\"prompt input_prompt\">\n</div><div class=\"inner_cell\">\n<div class=\"text_cell_render border-box-sizing rendered_html\">\n<h2>Martinovy prosby</h2>\n</div>\n</div>\n</div>\n<div class=\"cell border-box-sizing text_cell rendered\"><div class=\"prompt input_prompt\">\n</div><div class=\"inner_cell\">\n<div class=\"text_cell_render border-box-sizing rendered_html\">\n<ul>\n<li>Nebalte do arch&#xED;v&#x16F; ka&#x17E;dou &#xFA;lohu zvl&#xE1;&#x161;&#x165;. Jeden archiv bohat&#x11B; posta&#x10D;&#xED;.</li>\n<li>Nepos&#xED;lejte n&#xE1;m slo&#x17E;ky s virtu&#xE1;ln&#xED;m prost&#x159;ed&#xED;m.</li>\n</ul>\n</div>\n</div>\n</div>\n<div class=\"cell border-box-sizing text_cell rendered\"><div class=\"prompt input_prompt\">\n</div><div class=\"inner_cell\">\n<div class=\"text_cell_render border-box-sizing rendered_html\">\n<h2>Obecn&#xE9; rady, pochvaly a doporu&#x10D;en&#xED;</h2>\n</div>\n</div>\n</div>\n<div class=\"cell border-box-sizing text_cell rendered\"><div class=\"prompt input_prompt\">\n</div><div class=\"inner_cell\">\n<div class=\"text_cell_render border-box-sizing rendered_html\">\n<ul>\n<li>Velk&#xE1; pochvala za &#xFA;koly na githubu</li>\n<li>Pochvala za hled&#xE1;n&#xED; pomoci na internetu a pou&#x17E;&#xED;v&#xE1;n&#xED; nov&#xFD;ch v&#x11B;c&#xED;</li>\n<li>Pochvala t&#x11B;m, kdo m&#x11B;li obr&#xE1;zky &#x161;ibenice a japonsk&#xE9; abecedy ve zvl&#xE1;&#x161;tn&#xED;m souboru a ne p&#x159;&#xED;mo v k&#xF3;du</li>\n<li>Pochvala za psan&#xED; koment&#xE1;&#x159;&#x16F; k funkc&#xED;m a slo&#x17E;it&#x11B;j&#x161;&#xED;mu k&#xF3;du</li>\n</ul>\n</div>\n</div>\n</div>\n \n\n\n\n\n        "
    }
  }
}