Najdi chyby, nejasnosti či nepřesnosti v tomto kódu:
zvirata = [ "pes", "kočka", "králík", "had", "ježek"]
znak = "k"
def pismeno(jmeno):
for i in range(5):
if znak in jmeno[i][0]:
print(jmeno[i])
return
pismeno(zvirata)
Takto by to mohlo vypadat přehlednější a pochopitelnější
zvirata = [ "pes", "kočka", "králík", "had", "ježek"]
def s_prvnim_pismenem(seznam_zvirat, pismeno):
for zvire in seznam_zvirat:
if zvire.startswith(pismeno):
print(zvire)
s_prvnim_pismenem(zvirata, 'k')
Další podobná funkce:
def kratke(jmeno = zvirata):
for i in range(len(jmeno)):
if len(jmeno[i]) < 5:
print(jmeno[i])
else:
print(end = "")
return jmeno
kratke(zvirata)
A její přehlednější varianta:
def kratke(seznam_zvirat):
for jmeno in seznam_zvirat:
if len(jmeno) < 5:
print(jmeno)
kratke(zvirata)
Je možné tuto funkci zkrátit a zjednodušit?
def overeni(seznam):
"ověří, zda je zadané slovo v seznamu a vrátí True/False"
otazka = input("Zadej název zvířete, jež chceš ověřit: ")
if otazka in seznam:
return True
else:
return False
Ano, je to možné
def overeni(seznam):
"ověří, zda je zadané slovo v seznamu a vrátí True/False"
otazka = input("Zadej název zvířete, jež chceš ověřit: ")
return otazka in seznam
with open("static/basnicka.txt", encoding="utf-8") as soubor_s_bacnickou:
basnicka = soubor_s_bacnickou.read()
seznam_versu = basnicka.split("\n") # Rozdělí básničku na jednotlivé verše (řádky) [seznam]
seznam_versu.reverse() # Obrátí pořadí veršů v seznamu
obracena_basnicka = "\n".join(seznam_versu) # Složí zpět seznam na řetězec a mezi verše vloží \n
print(obracena_basnicka)
with open("static/basnicka.txt", encoding="utf-8") as soubor_s_bacnickou:
seznam_versu = soubor_s_bacnickou.readlines()
for vers in seznam_versu[::-1]:
print(vers, end="")
with open("static/basnicka.txt", encoding="utf-8") as soubor_s_bacnickou:
basnicka = soubor_s_bacnickou.read()
seznam_versu = basnicka.split("\n") # Rozdělí básničku na jednotlivé verše (řádky) [seznam]
nova_basnicka = [] # Seznam pro novou básničku, která obrácením pořadí slov vznikne
for vers in seznam_versu: # Pro každý verš v originální básničce
slova = vers.split() # Rozdělí verš na slova [seznam]
slova.reverse() # Obrátí pořádí slov
novy_vers = " ".join(slova) # Spojí obrázená slova zpět do řetězce
nova_basnicka.append(novy_vers) # Přidá nový verš do nové básničky
obracena_basnicka = "\n".join(nova_basnicka) # Složí zpět seznam na řetězec a mezi verše vloží \n
print(obracena_basnicka)
with open("static/basnicka.txt", encoding="utf-8") as soubor_s_bacnickou:
seznam_versu = soubor_s_bacnickou.readlines()
for i, vers in enumerate(seznam_versu):
slova = vers.split()
slova.reverse()
seznam_versu[i] = " ".join(slova)
print("\n".join(seznam_versu))
with open("static/basnicka.txt", encoding="utf-8") as soubor_s_bacnickou:
basnicka = soubor_s_bacnickou.read()
seznam_slok = basnicka.split("\n\n") # Rozdělí básničku na jednotlivé sloky [seznam]
seznam_slok.reverse()
basnicka = "\n".join(seznam_slok)
print(basnicka)
from random import shuffle
with open("static/basnicka.txt", encoding="utf-8") as soubor_s_bacnickou:
seznam_versu = soubor_s_bacnickou.readlines()
for i, vers in enumerate(seznam_versu):
slova = vers.split()
shuffle(slova)
seznam_versu[i] = " ".join(slova)
print("\n".join(seznam_versu))
Takto použitá funkce situaci spíše komplikuje, než aby něčemu pomohla.
zvirata = ['had', 'andulka', 'pes', 'kočka', 'králík']
dvojice = []
vysledek = []
def razeni_had(seznam1, seznam2, seznam3):
'''seřadí výchozí seznam1 podle abecedy, ale bude ignorovat první písmeno'''
for slovo in seznam1:
seznam2.append([slovo[1:], slovo])
seznam2.sort()
for item in seznam2:
seznam3.append(item[1])
seznam3
razeni_had(zvirata, dvojice, vysledek)
print(vysledek)
Co se asi stane, když takovou funkci zavoláme vícekrát?
zvirata = ['had', 'andulka', 'pes', 'kočka', 'králík']
dvojice = []
vysledek = []
def razeni_had(seznam1, seznam2, seznam3):
'''seřadí výchozí seznam1 podle abecedy, ale bude ignorovat první písmeno'''
for slovo in seznam1:
seznam2.append([slovo[1:], slovo])
seznam2.sort()
for item in seznam2:
seznam3.append(item[1])
seznam3
razeni_had(zvirata, dvojice, vysledek)
print(vysledek)
razeni_had(zvirata, dvojice, vysledek)
print(vysledek)
Nejsnazší je funkci prostě spustit s různými argumenty a podívat se, zda dělá to, co by dělat měla.
def absolutni_soucet(a, b):
if a < 0:
a = -a
if b < 0:
b = -b
return a + b
print(absolutni_soucet(1, 2))
print(absolutni_soucet(100, 200))
print(absolutni_soucet(-1, -2))
print(absolutni_soucet(-1, 2))
print(absolutni_soucet(100, -2))
Jedná se o zápis s Pythonu s jehož pomocí se dají jednoduše vytvářet seznamy.
seznam_mocnin = []
for x in range(10):
seznam_mocnin.append(x ** 2)
seznam_mocnin
[x for x in range(10)]
[x**2 for x in range(10)]
[x**2 for x in range(10) if x % 2 == 0]
[(x, x**2) for x in range(10)]
[[y for y in range(3)] for x in range(10)]
def vytvor_tabulku():
zap_tabulka = []
for rada_x in '.', '.', '.', '.', '.', '.', '.', '.', '.', '.':
radek = []
for rada_y in '.', '.', '.', '.', '.', '.', '.', '.', '.', '.':
radek.append(rada_y)
zap_tabulka.append(radek)
return zap_tabulka
def vytvor_prazdne_herni_pole(r,s):
seznam_radku = []
for a in range(r):
radek = ["."]
for b in range(s-1):
radek.append(".")
seznam_radku.append(radek)
return seznam_radku
def vytvor_tabulku(velikost):
seznam_radku = []
for a in range(velikost):
radek = []
for b in range(velikost):
radek.append(".")
seznam_radku.append(radek)
return seznam_radku
def vytvor_tabulku(velikost):
seznam_radku = []
for a in range(velikost):
radek = ["."] * velikost
seznam_radku.append(radek)
return seznam_radku
def vytvor_tabulku(velikost):
tabulka = []
for x in range(velikost):
radek = ['.' for x in range(velikost)]
tabulka.append(radek)
return tabulka
def vytvor_tabulku(velikost):
return [list('.' * velikost) for x in range(velikost)]
def velikost_hraciho_pole():
"""Zjistí od uživatele rozumnou velikost herního pole"""
while True:
odpoved = input('Zadej velikost pole pro hada: ')
try:
velikost = int(odpoved)
except ValueError:
print('Velikost musí být celé číslo')
else:
if velikost > 5:
break
else:
print('Pole musí být rozumně veliké!')
return velikost
def vykresli_mapu(velikost, had, ovoce):
"""Vykreslí herní mapu s ovocem a hadem na správných místech"""
for x in range(velikost):
for y in range(velikost):
if (x, y) in had:
print('X', end=' ')
elif (x, y) in ovoce:
print('?', end=' ')
else:
print('.', end=' ')
print()
def posun(velikost, had, ovoce):
"""Posune hada v určitém směru a zajistí jeho prodloužení při snězení jídla"""
while True:
smer = input('Zadej smer posunu [s, j, v, z]: ')
smer = smer.lower().strip()
if smer not in ('s', 'j', 'v', 'z'):
print('Nekorektni smer!')
else:
break
hlava = had[-1]
x, y = hlava
if smer == 's':
nova_hlava = x-1, y
elif smer == 'j':
nova_hlava = x+1, y
elif smer == 'v':
nova_hlava = x, y+1
elif smer == 'z':
nova_hlava = x, y-1
if nova_hlava in had:
raise ValueError('GAME OVER! Narazil si sam do sebe')
x, y = nova_hlava
if x < 0 or x > velikost-1 or y < 0 or y > velikost-1:
raise ValueError('GAME OVER! Vyjel si mimo herni pole')
if nova_hlava in ovoce:
ovoce.remove(nova_hlava)
else:
del had[0]
had.append(nova_hlava)
return True
from random import randrange
def pridej_ovoce(velikost, had, ovoce):
"""Přidá další ovoce na herní plochu mimo souřadnice hada"""
ovoce.append((randrange(0, velikost), randrange(0, velikost)))
while ovoce[-1] in had:
del ovoce[-1]
ovoce.append((randrange(0, velikost), randrange(0, velikost)))
def hra():
"""Hlavní části hry spojeny ve finální celek"""
velikost = velikost_hraciho_pole()
had = [(0, 0), (0, 1), (0, 2)]
ovoce = []
pridej_ovoce(velikost, had, ovoce)
vykresli_mapu(velikost, had, ovoce)
while posun(velikost, had, ovoce):
vykresli_mapu(velikost, had, ovoce)
if not ovoce:
pridej_ovoce(velikost, had, ovoce)
hra()
Jde o techniku řešení problému, při které se svůj problém snažíte vysvětlit někomu (nebo v případě gumové kachny něčemu), kdo programování nemusí vůbec rozumět. Když řešenou problematiku a vaše současné řešení popisujete nahlas, uvědomíte si, co váš program aktuálně dělá a co by dělat měl, což zpravidla vede k vyřešení problému.
{ "data": { "sessionMaterial": { "id": "session-material:2019/pyladies-ostrava-jaro:list:5", "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ácím projektů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>Zvířátka</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>Najdi chyby, nejasnosti či nepřesnosti v tomto kódu:</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 [ ]:</div>\n<div class=\"inner_cell\">\n <div class=\"input_area\">\n<div class=\" highlight hl-ipython3\"><pre><span></span><span class=\"n\">zvirata</span> <span class=\"o\">=</span> <span class=\"p\">[</span> <span class=\"s2\">"pes"</span><span class=\"p\">,</span> <span class=\"s2\">"kočka"</span><span class=\"p\">,</span> <span class=\"s2\">"králík"</span><span class=\"p\">,</span> <span class=\"s2\">"had"</span><span class=\"p\">,</span> <span class=\"s2\">"ježek"</span><span class=\"p\">]</span>\n<span class=\"n\">znak</span> <span class=\"o\">=</span> <span class=\"s2\">"k"</span>\n\n<span class=\"k\">def</span> <span class=\"nf\">pismeno</span><span class=\"p\">(</span><span class=\"n\">jmeno</span><span class=\"p\">):</span>\n <span class=\"k\">for</span> <span class=\"n\">i</span> <span class=\"ow\">in</span> <span class=\"nb\">range</span><span class=\"p\">(</span><span class=\"mi\">5</span><span class=\"p\">):</span>\n <span class=\"k\">if</span> <span class=\"n\">znak</span> <span class=\"ow\">in</span> <span class=\"n\">jmeno</span><span class=\"p\">[</span><span class=\"n\">i</span><span class=\"p\">][</span><span class=\"mi\">0</span><span class=\"p\">]:</span>\n <span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">jmeno</span><span class=\"p\">[</span><span class=\"n\">i</span><span class=\"p\">])</span>\n <span class=\"k\">return</span>\n\n<span class=\"n\">pismeno</span><span class=\"p\">(</span><span class=\"n\">zvirata</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<p>Takto by to mohlo vypadat přehlednější a pochopitelnější</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 [ ]:</div>\n<div class=\"inner_cell\">\n <div class=\"input_area\">\n<div class=\" highlight hl-ipython3\"><pre><span></span><span class=\"n\">zvirata</span> <span class=\"o\">=</span> <span class=\"p\">[</span> <span class=\"s2\">"pes"</span><span class=\"p\">,</span> <span class=\"s2\">"kočka"</span><span class=\"p\">,</span> <span class=\"s2\">"králík"</span><span class=\"p\">,</span> <span class=\"s2\">"had"</span><span class=\"p\">,</span> <span class=\"s2\">"ježek"</span><span class=\"p\">]</span>\n\n<span class=\"k\">def</span> <span class=\"nf\">s_prvnim_pismenem</span><span class=\"p\">(</span><span class=\"n\">seznam_zvirat</span><span class=\"p\">,</span> <span class=\"n\">pismeno</span><span class=\"p\">):</span>\n <span class=\"k\">for</span> <span class=\"n\">zvire</span> <span class=\"ow\">in</span> <span class=\"n\">seznam_zvirat</span><span class=\"p\">:</span>\n <span class=\"k\">if</span> <span class=\"n\">zvire</span><span class=\"o\">.</span><span class=\"n\">startswith</span><span class=\"p\">(</span><span class=\"n\">pismeno</span><span class=\"p\">):</span>\n <span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">zvire</span><span class=\"p\">)</span>\n\n<span class=\"n\">s_prvnim_pismenem</span><span class=\"p\">(</span><span class=\"n\">zvirata</span><span class=\"p\">,</span> <span class=\"s1\">'k'</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<p>Další podobná funkce:</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 [ ]:</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\">kratke</span><span class=\"p\">(</span><span class=\"n\">jmeno</span> <span class=\"o\">=</span> <span class=\"n\">zvirata</span><span class=\"p\">):</span>\n <span class=\"k\">for</span> <span class=\"n\">i</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\">jmeno</span><span class=\"p\">)):</span>\n <span class=\"k\">if</span> <span class=\"nb\">len</span><span class=\"p\">(</span><span class=\"n\">jmeno</span><span class=\"p\">[</span><span class=\"n\">i</span><span class=\"p\">])</span> <span class=\"o\"><</span> <span class=\"mi\">5</span><span class=\"p\">:</span>\n <span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">jmeno</span><span class=\"p\">[</span><span class=\"n\">i</span><span class=\"p\">])</span>\n <span class=\"k\">else</span><span class=\"p\">:</span>\n <span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">end</span> <span class=\"o\">=</span> <span class=\"s2\">""</span><span class=\"p\">)</span>\n <span class=\"k\">return</span> <span class=\"n\">jmeno</span>\n\n<span class=\"n\">kratke</span><span class=\"p\">(</span><span class=\"n\">zvirata</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<p>A její přehlednější varianta:</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 [ ]:</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\">kratke</span><span class=\"p\">(</span><span class=\"n\">seznam_zvirat</span><span class=\"p\">):</span>\n <span class=\"k\">for</span> <span class=\"n\">jmeno</span> <span class=\"ow\">in</span> <span class=\"n\">seznam_zvirat</span><span class=\"p\">:</span>\n <span class=\"k\">if</span> <span class=\"nb\">len</span><span class=\"p\">(</span><span class=\"n\">jmeno</span><span class=\"p\">)</span> <span class=\"o\"><</span> <span class=\"mi\">5</span><span class=\"p\">:</span>\n <span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">jmeno</span><span class=\"p\">)</span>\n\n<span class=\"n\">kratke</span><span class=\"p\">(</span><span class=\"n\">zvirata</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<p>Je možné tuto funkci zkrátit a zjednodušit?</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 [ ]:</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\">overeni</span><span class=\"p\">(</span><span class=\"n\">seznam</span><span class=\"p\">):</span>\n <span class=\"s2\">"ověří, zda je zadané slovo v seznamu a vrátí True/False"</span>\n <span class=\"n\">otazka</span> <span class=\"o\">=</span> <span class=\"nb\">input</span><span class=\"p\">(</span><span class=\"s2\">"Zadej název zvířete, jež chceš ověřit: "</span><span class=\"p\">)</span>\n <span class=\"k\">if</span> <span class=\"n\">otazka</span> <span class=\"ow\">in</span> <span class=\"n\">seznam</span><span class=\"p\">:</span>\n <span class=\"k\">return</span> <span class=\"kc\">True</span>\n <span class=\"k\">else</span><span class=\"p\">:</span>\n <span class=\"k\">return</span> <span class=\"kc\">False</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<p>Ano, je to možné</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 [ ]:</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\">overeni</span><span class=\"p\">(</span><span class=\"n\">seznam</span><span class=\"p\">):</span>\n <span class=\"s2\">"ověří, zda je zadané slovo v seznamu a vrátí True/False"</span>\n <span class=\"n\">otazka</span> <span class=\"o\">=</span> <span class=\"nb\">input</span><span class=\"p\">(</span><span class=\"s2\">"Zadej název zvířete, jež chceš ověřit: "</span><span class=\"p\">)</span>\n <span class=\"k\">return</span> <span class=\"n\">otazka</span> <span class=\"ow\">in</span> <span class=\"n\">seznam</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>Básnička</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<h3>Obrácené pořadí veršů</h3>\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 [1]:</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\">"static/basnicka.txt"</span><span class=\"p\">,</span> <span class=\"n\">encoding</span><span class=\"o\">=</span><span class=\"s2\">"utf-8"</span><span class=\"p\">)</span> <span class=\"k\">as</span> <span class=\"n\">soubor_s_bacnickou</span><span class=\"p\">:</span>\n <span class=\"n\">basnicka</span> <span class=\"o\">=</span> <span class=\"n\">soubor_s_bacnickou</span><span class=\"o\">.</span><span class=\"n\">read</span><span class=\"p\">()</span>\n\n<span class=\"n\">seznam_versu</span> <span class=\"o\">=</span> <span class=\"n\">basnicka</span><span class=\"o\">.</span><span class=\"n\">split</span><span class=\"p\">(</span><span class=\"s2\">"</span><span class=\"se\">\\n</span><span class=\"s2\">"</span><span class=\"p\">)</span> <span class=\"c1\"># Rozdělí básničku na jednotlivé verše (řádky) [seznam]</span>\n<span class=\"n\">seznam_versu</span><span class=\"o\">.</span><span class=\"n\">reverse</span><span class=\"p\">()</span> <span class=\"c1\"># Obrátí pořadí veršů v seznamu</span>\n<span class=\"n\">obracena_basnicka</span> <span class=\"o\">=</span> <span class=\"s2\">"</span><span class=\"se\">\\n</span><span class=\"s2\">"</span><span class=\"o\">.</span><span class=\"n\">join</span><span class=\"p\">(</span><span class=\"n\">seznam_versu</span><span class=\"p\">)</span> <span class=\"c1\"># Složí zpět seznam na řetězec a mezi verše vloží \\n</span>\n<span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">obracena_basnicka</span><span class=\"p\">)</span>\n</pre></div>\n\n </div>\n</div>\n</div>\n\n<div class=\"output_wrapper\">\n<div class=\"output\">\n\n\n<div class=\"output_area\">\n\n <div class=\"prompt\"></div>\n\n\n<div class=\"output_subarea output_stream output_stdout output_text\">\n<pre>Anyway the wind blows doesn't really matter to me, to me.\nLittle high, little low,\nBecause I'm easy come, easy go,\nI'm just a poor boy, I need no sympathy,\nLook up to the skies and see,\nOpen your eyes,\n\nNo escape from reality.\nCaught in a landslide,\nIs this just fantasy?\nIs this the real life?\n</pre>\n</div>\n</div>\n\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 [2]:</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\">"static/basnicka.txt"</span><span class=\"p\">,</span> <span class=\"n\">encoding</span><span class=\"o\">=</span><span class=\"s2\">"utf-8"</span><span class=\"p\">)</span> <span class=\"k\">as</span> <span class=\"n\">soubor_s_bacnickou</span><span class=\"p\">:</span>\n <span class=\"n\">seznam_versu</span> <span class=\"o\">=</span> <span class=\"n\">soubor_s_bacnickou</span><span class=\"o\">.</span><span class=\"n\">readlines</span><span class=\"p\">()</span>\n\n<span class=\"k\">for</span> <span class=\"n\">vers</span> <span class=\"ow\">in</span> <span class=\"n\">seznam_versu</span><span class=\"p\">[::</span><span class=\"o\">-</span><span class=\"mi\">1</span><span class=\"p\">]:</span>\n <span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">vers</span><span class=\"p\">,</span> <span class=\"n\">end</span><span class=\"o\">=</span><span class=\"s2\">""</span><span class=\"p\">)</span>\n</pre></div>\n\n </div>\n</div>\n</div>\n\n<div class=\"output_wrapper\">\n<div class=\"output\">\n\n\n<div class=\"output_area\">\n\n <div class=\"prompt\"></div>\n\n\n<div class=\"output_subarea output_stream output_stdout output_text\">\n<pre>Anyway the wind blows doesn't really matter to me, to me.\nLittle high, little low,\nBecause I'm easy come, easy go,\nI'm just a poor boy, I need no sympathy,\nLook up to the skies and see,\nOpen your eyes,\n\nNo escape from reality.\nCaught in a landslide,\nIs this just fantasy?\nIs this the real life?\n</pre>\n</div>\n</div>\n\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<h3>Obrácené pořadí slov ve verších</h3>\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 [3]:</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\">"static/basnicka.txt"</span><span class=\"p\">,</span> <span class=\"n\">encoding</span><span class=\"o\">=</span><span class=\"s2\">"utf-8"</span><span class=\"p\">)</span> <span class=\"k\">as</span> <span class=\"n\">soubor_s_bacnickou</span><span class=\"p\">:</span>\n <span class=\"n\">basnicka</span> <span class=\"o\">=</span> <span class=\"n\">soubor_s_bacnickou</span><span class=\"o\">.</span><span class=\"n\">read</span><span class=\"p\">()</span>\n\n<span class=\"n\">seznam_versu</span> <span class=\"o\">=</span> <span class=\"n\">basnicka</span><span class=\"o\">.</span><span class=\"n\">split</span><span class=\"p\">(</span><span class=\"s2\">"</span><span class=\"se\">\\n</span><span class=\"s2\">"</span><span class=\"p\">)</span> <span class=\"c1\"># Rozdělí básničku na jednotlivé verše (řádky) [seznam]</span>\n\n<span class=\"n\">nova_basnicka</span> <span class=\"o\">=</span> <span class=\"p\">[]</span> <span class=\"c1\"># Seznam pro novou básničku, která obrácením pořadí slov vznikne</span>\n\n<span class=\"k\">for</span> <span class=\"n\">vers</span> <span class=\"ow\">in</span> <span class=\"n\">seznam_versu</span><span class=\"p\">:</span> <span class=\"c1\"># Pro každý verš v originální básničce</span>\n <span class=\"n\">slova</span> <span class=\"o\">=</span> <span class=\"n\">vers</span><span class=\"o\">.</span><span class=\"n\">split</span><span class=\"p\">()</span> <span class=\"c1\"># Rozdělí verš na slova [seznam]</span>\n <span class=\"n\">slova</span><span class=\"o\">.</span><span class=\"n\">reverse</span><span class=\"p\">()</span> <span class=\"c1\"># Obrátí pořádí slov</span>\n <span class=\"n\">novy_vers</span> <span class=\"o\">=</span> <span class=\"s2\">" "</span><span class=\"o\">.</span><span class=\"n\">join</span><span class=\"p\">(</span><span class=\"n\">slova</span><span class=\"p\">)</span> <span class=\"c1\"># Spojí obrázená slova zpět do řetězce</span>\n <span class=\"n\">nova_basnicka</span><span class=\"o\">.</span><span class=\"n\">append</span><span class=\"p\">(</span><span class=\"n\">novy_vers</span><span class=\"p\">)</span> <span class=\"c1\"># Přidá nový verš do nové básničky</span>\n\n<span class=\"n\">obracena_basnicka</span> <span class=\"o\">=</span> <span class=\"s2\">"</span><span class=\"se\">\\n</span><span class=\"s2\">"</span><span class=\"o\">.</span><span class=\"n\">join</span><span class=\"p\">(</span><span class=\"n\">nova_basnicka</span><span class=\"p\">)</span> <span class=\"c1\"># Složí zpět seznam na řetězec a mezi verše vloží \\n</span>\n<span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">obracena_basnicka</span><span class=\"p\">)</span>\n</pre></div>\n\n </div>\n</div>\n</div>\n\n<div class=\"output_wrapper\">\n<div class=\"output\">\n\n\n<div class=\"output_area\">\n\n <div class=\"prompt\"></div>\n\n\n<div class=\"output_subarea output_stream output_stdout output_text\">\n<pre>life? real the this Is\nfantasy? just this Is\nlandslide, a in Caught\nreality. from escape No\n\neyes, your Open\nsee, and skies the to up Look\nsympathy, no need I boy, poor a just I'm\ngo, easy come, easy I'm Because\nlow, little high, Little\nme. to me, to matter really doesn't blows wind the Anyway\n\n</pre>\n</div>\n</div>\n\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 [4]:</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\">"static/basnicka.txt"</span><span class=\"p\">,</span> <span class=\"n\">encoding</span><span class=\"o\">=</span><span class=\"s2\">"utf-8"</span><span class=\"p\">)</span> <span class=\"k\">as</span> <span class=\"n\">soubor_s_bacnickou</span><span class=\"p\">:</span>\n <span class=\"n\">seznam_versu</span> <span class=\"o\">=</span> <span class=\"n\">soubor_s_bacnickou</span><span class=\"o\">.</span><span class=\"n\">readlines</span><span class=\"p\">()</span>\n\n<span class=\"k\">for</span> <span class=\"n\">i</span><span class=\"p\">,</span> <span class=\"n\">vers</span> <span class=\"ow\">in</span> <span class=\"nb\">enumerate</span><span class=\"p\">(</span><span class=\"n\">seznam_versu</span><span class=\"p\">):</span>\n <span class=\"n\">slova</span> <span class=\"o\">=</span> <span class=\"n\">vers</span><span class=\"o\">.</span><span class=\"n\">split</span><span class=\"p\">()</span>\n <span class=\"n\">slova</span><span class=\"o\">.</span><span class=\"n\">reverse</span><span class=\"p\">()</span>\n <span class=\"n\">seznam_versu</span><span class=\"p\">[</span><span class=\"n\">i</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"s2\">" "</span><span class=\"o\">.</span><span class=\"n\">join</span><span class=\"p\">(</span><span class=\"n\">slova</span><span class=\"p\">)</span>\n\n<span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"s2\">"</span><span class=\"se\">\\n</span><span class=\"s2\">"</span><span class=\"o\">.</span><span class=\"n\">join</span><span class=\"p\">(</span><span class=\"n\">seznam_versu</span><span class=\"p\">))</span>\n</pre></div>\n\n </div>\n</div>\n</div>\n\n<div class=\"output_wrapper\">\n<div class=\"output\">\n\n\n<div class=\"output_area\">\n\n <div class=\"prompt\"></div>\n\n\n<div class=\"output_subarea output_stream output_stdout output_text\">\n<pre>life? real the this Is\nfantasy? just this Is\nlandslide, a in Caught\nreality. from escape No\n\neyes, your Open\nsee, and skies the to up Look\nsympathy, no need I boy, poor a just I'm\ngo, easy come, easy I'm Because\nlow, little high, Little\nme. to me, to matter really doesn't blows wind the Anyway\n</pre>\n</div>\n</div>\n\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<h3>Obrácené pořadí slok</h3>\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 [5]:</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\">"static/basnicka.txt"</span><span class=\"p\">,</span> <span class=\"n\">encoding</span><span class=\"o\">=</span><span class=\"s2\">"utf-8"</span><span class=\"p\">)</span> <span class=\"k\">as</span> <span class=\"n\">soubor_s_bacnickou</span><span class=\"p\">:</span>\n <span class=\"n\">basnicka</span> <span class=\"o\">=</span> <span class=\"n\">soubor_s_bacnickou</span><span class=\"o\">.</span><span class=\"n\">read</span><span class=\"p\">()</span>\n\n<span class=\"n\">seznam_slok</span> <span class=\"o\">=</span> <span class=\"n\">basnicka</span><span class=\"o\">.</span><span class=\"n\">split</span><span class=\"p\">(</span><span class=\"s2\">"</span><span class=\"se\">\\n\\n</span><span class=\"s2\">"</span><span class=\"p\">)</span> <span class=\"c1\"># Rozdělí básničku na jednotlivé sloky [seznam]</span>\n<span class=\"n\">seznam_slok</span><span class=\"o\">.</span><span class=\"n\">reverse</span><span class=\"p\">()</span>\n<span class=\"n\">basnicka</span> <span class=\"o\">=</span> <span class=\"s2\">"</span><span class=\"se\">\\n</span><span class=\"s2\">"</span><span class=\"o\">.</span><span class=\"n\">join</span><span class=\"p\">(</span><span class=\"n\">seznam_slok</span><span class=\"p\">)</span>\n<span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">basnicka</span><span class=\"p\">)</span>\n</pre></div>\n\n </div>\n</div>\n</div>\n\n<div class=\"output_wrapper\">\n<div class=\"output\">\n\n\n<div class=\"output_area\">\n\n <div class=\"prompt\"></div>\n\n\n<div class=\"output_subarea output_stream output_stdout output_text\">\n<pre>Open your eyes,\nLook up to the skies and see,\nI'm just a poor boy, I need no sympathy,\nBecause I'm easy come, easy go,\nLittle high, little low,\nAnyway the wind blows doesn't really matter to me, to me.\n\nIs this the real life?\nIs this just fantasy?\nCaught in a landslide,\nNo escape from reality.\n</pre>\n</div>\n</div>\n\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<h3>Slova v náhodném pořadí (Mr. Yoda style)</h3>\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 [6]:</div>\n<div class=\"inner_cell\">\n <div class=\"input_area\">\n<div class=\" highlight hl-ipython3\"><pre><span></span><span class=\"kn\">from</span> <span class=\"nn\">random</span> <span class=\"k\">import</span> <span class=\"n\">shuffle</span>\n\n<span class=\"k\">with</span> <span class=\"nb\">open</span><span class=\"p\">(</span><span class=\"s2\">"static/basnicka.txt"</span><span class=\"p\">,</span> <span class=\"n\">encoding</span><span class=\"o\">=</span><span class=\"s2\">"utf-8"</span><span class=\"p\">)</span> <span class=\"k\">as</span> <span class=\"n\">soubor_s_bacnickou</span><span class=\"p\">:</span>\n <span class=\"n\">seznam_versu</span> <span class=\"o\">=</span> <span class=\"n\">soubor_s_bacnickou</span><span class=\"o\">.</span><span class=\"n\">readlines</span><span class=\"p\">()</span>\n\n<span class=\"k\">for</span> <span class=\"n\">i</span><span class=\"p\">,</span> <span class=\"n\">vers</span> <span class=\"ow\">in</span> <span class=\"nb\">enumerate</span><span class=\"p\">(</span><span class=\"n\">seznam_versu</span><span class=\"p\">):</span>\n <span class=\"n\">slova</span> <span class=\"o\">=</span> <span class=\"n\">vers</span><span class=\"o\">.</span><span class=\"n\">split</span><span class=\"p\">()</span>\n <span class=\"n\">shuffle</span><span class=\"p\">(</span><span class=\"n\">slova</span><span class=\"p\">)</span>\n <span class=\"n\">seznam_versu</span><span class=\"p\">[</span><span class=\"n\">i</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"s2\">" "</span><span class=\"o\">.</span><span class=\"n\">join</span><span class=\"p\">(</span><span class=\"n\">slova</span><span class=\"p\">)</span>\n\n<span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"s2\">"</span><span class=\"se\">\\n</span><span class=\"s2\">"</span><span class=\"o\">.</span><span class=\"n\">join</span><span class=\"p\">(</span><span class=\"n\">seznam_versu</span><span class=\"p\">))</span>\n</pre></div>\n\n </div>\n</div>\n</div>\n\n<div class=\"output_wrapper\">\n<div class=\"output\">\n\n\n<div class=\"output_area\">\n\n <div class=\"prompt\"></div>\n\n\n<div class=\"output_subarea output_stream output_stdout output_text\">\n<pre>life? this Is real the\nIs this just fantasy?\nCaught in a landslide,\nreality. from escape No\n\nyour eyes, Open\nup see, and to Look skies the\njust sympathy, I poor no need a I'm boy,\nI'm come, easy easy go, Because\nLittle little high, low,\nme. to blows the matter me, really wind to doesn't Anyway\n</pre>\n</div>\n</div>\n\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>Funkce jako stavební blok programu</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>Takto použitá funkce situaci spíše komplikuje, než aby něčemu pomohla.</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 [19]:</div>\n<div class=\"inner_cell\">\n <div class=\"input_area\">\n<div class=\" highlight hl-ipython3\"><pre><span></span><span class=\"n\">zvirata</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s1\">'had'</span><span class=\"p\">,</span> <span class=\"s1\">'andulka'</span><span class=\"p\">,</span> <span class=\"s1\">'pes'</span><span class=\"p\">,</span> <span class=\"s1\">'kočka'</span><span class=\"p\">,</span> <span class=\"s1\">'králík'</span><span class=\"p\">]</span>\n<span class=\"n\">dvojice</span> <span class=\"o\">=</span> <span class=\"p\">[]</span>\n<span class=\"n\">vysledek</span> <span class=\"o\">=</span> <span class=\"p\">[]</span>\n\n<span class=\"k\">def</span> <span class=\"nf\">razeni_had</span><span class=\"p\">(</span><span class=\"n\">seznam1</span><span class=\"p\">,</span> <span class=\"n\">seznam2</span><span class=\"p\">,</span> <span class=\"n\">seznam3</span><span class=\"p\">):</span>\n <span class=\"sd\">'''seřadí výchozí seznam1 podle abecedy, ale bude ignorovat první písmeno'''</span>\n <span class=\"k\">for</span> <span class=\"n\">slovo</span> <span class=\"ow\">in</span> <span class=\"n\">seznam1</span><span class=\"p\">:</span>\n <span class=\"n\">seznam2</span><span class=\"o\">.</span><span class=\"n\">append</span><span class=\"p\">([</span><span class=\"n\">slovo</span><span class=\"p\">[</span><span class=\"mi\">1</span><span class=\"p\">:],</span> <span class=\"n\">slovo</span><span class=\"p\">])</span>\n <span class=\"n\">seznam2</span><span class=\"o\">.</span><span class=\"n\">sort</span><span class=\"p\">()</span>\n <span class=\"k\">for</span> <span class=\"n\">item</span> <span class=\"ow\">in</span> <span class=\"n\">seznam2</span><span class=\"p\">:</span>\n <span class=\"n\">seznam3</span><span class=\"o\">.</span><span class=\"n\">append</span><span class=\"p\">(</span><span class=\"n\">item</span><span class=\"p\">[</span><span class=\"mi\">1</span><span class=\"p\">])</span>\n <span class=\"n\">seznam3</span>\n\n<span class=\"n\">razeni_had</span><span class=\"p\">(</span><span class=\"n\">zvirata</span><span class=\"p\">,</span> <span class=\"n\">dvojice</span><span class=\"p\">,</span> <span class=\"n\">vysledek</span><span class=\"p\">)</span>\n<span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">vysledek</span><span class=\"p\">)</span>\n</pre></div>\n\n </div>\n</div>\n</div>\n\n<div class=\"output_wrapper\">\n<div class=\"output\">\n\n\n<div class=\"output_area\">\n\n <div class=\"prompt\"></div>\n\n\n<div class=\"output_subarea output_stream output_stdout output_text\">\n<pre>['had', 'pes', 'andulka', 'kočka', 'králík']\n</pre>\n</div>\n</div>\n\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<p>Co se asi stane, když takovou funkci zavoláme vícekrát?</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 [20]:</div>\n<div class=\"inner_cell\">\n <div class=\"input_area\">\n<div class=\" highlight hl-ipython3\"><pre><span></span><span class=\"n\">zvirata</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s1\">'had'</span><span class=\"p\">,</span> <span class=\"s1\">'andulka'</span><span class=\"p\">,</span> <span class=\"s1\">'pes'</span><span class=\"p\">,</span> <span class=\"s1\">'kočka'</span><span class=\"p\">,</span> <span class=\"s1\">'králík'</span><span class=\"p\">]</span>\n<span class=\"n\">dvojice</span> <span class=\"o\">=</span> <span class=\"p\">[]</span>\n<span class=\"n\">vysledek</span> <span class=\"o\">=</span> <span class=\"p\">[]</span>\n\n<span class=\"k\">def</span> <span class=\"nf\">razeni_had</span><span class=\"p\">(</span><span class=\"n\">seznam1</span><span class=\"p\">,</span> <span class=\"n\">seznam2</span><span class=\"p\">,</span> <span class=\"n\">seznam3</span><span class=\"p\">):</span>\n <span class=\"sd\">'''seřadí výchozí seznam1 podle abecedy, ale bude ignorovat první písmeno'''</span>\n <span class=\"k\">for</span> <span class=\"n\">slovo</span> <span class=\"ow\">in</span> <span class=\"n\">seznam1</span><span class=\"p\">:</span>\n <span class=\"n\">seznam2</span><span class=\"o\">.</span><span class=\"n\">append</span><span class=\"p\">([</span><span class=\"n\">slovo</span><span class=\"p\">[</span><span class=\"mi\">1</span><span class=\"p\">:],</span> <span class=\"n\">slovo</span><span class=\"p\">])</span>\n <span class=\"n\">seznam2</span><span class=\"o\">.</span><span class=\"n\">sort</span><span class=\"p\">()</span>\n <span class=\"k\">for</span> <span class=\"n\">item</span> <span class=\"ow\">in</span> <span class=\"n\">seznam2</span><span class=\"p\">:</span>\n <span class=\"n\">seznam3</span><span class=\"o\">.</span><span class=\"n\">append</span><span class=\"p\">(</span><span class=\"n\">item</span><span class=\"p\">[</span><span class=\"mi\">1</span><span class=\"p\">])</span>\n <span class=\"n\">seznam3</span>\n\n<span class=\"n\">razeni_had</span><span class=\"p\">(</span><span class=\"n\">zvirata</span><span class=\"p\">,</span> <span class=\"n\">dvojice</span><span class=\"p\">,</span> <span class=\"n\">vysledek</span><span class=\"p\">)</span>\n<span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">vysledek</span><span class=\"p\">)</span>\n<span class=\"n\">razeni_had</span><span class=\"p\">(</span><span class=\"n\">zvirata</span><span class=\"p\">,</span> <span class=\"n\">dvojice</span><span class=\"p\">,</span> <span class=\"n\">vysledek</span><span class=\"p\">)</span>\n<span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">vysledek</span><span class=\"p\">)</span>\n</pre></div>\n\n </div>\n</div>\n</div>\n\n<div class=\"output_wrapper\">\n<div class=\"output\">\n\n\n<div class=\"output_area\">\n\n <div class=\"prompt\"></div>\n\n\n<div class=\"output_subarea output_stream output_stdout output_text\">\n<pre>['had', 'pes', 'andulka', 'kočka', 'králík']\n['had', 'pes', 'andulka', 'kočka', 'králík', 'had', 'had', 'pes', 'pes', 'andulka', 'andulka', 'kočka', 'kočka', 'králík', 'králík']\n</pre>\n</div>\n</div>\n\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>Ověření, že funkce funguje</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>Nejsnazší je funkci prostě spustit s různými argumenty a podívat se, zda dělá to, co by dělat měla.</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 [7]:</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\">absolutni_soucet</span><span class=\"p\">(</span><span class=\"n\">a</span><span class=\"p\">,</span> <span class=\"n\">b</span><span class=\"p\">):</span>\n <span class=\"k\">if</span> <span class=\"n\">a</span> <span class=\"o\"><</span> <span class=\"mi\">0</span><span class=\"p\">:</span>\n <span class=\"n\">a</span> <span class=\"o\">=</span> <span class=\"o\">-</span><span class=\"n\">a</span>\n <span class=\"k\">if</span> <span class=\"n\">b</span> <span class=\"o\"><</span> <span class=\"mi\">0</span><span class=\"p\">:</span>\n <span class=\"n\">b</span> <span class=\"o\">=</span> <span class=\"o\">-</span><span class=\"n\">b</span>\n <span class=\"k\">return</span> <span class=\"n\">a</span> <span class=\"o\">+</span> <span class=\"n\">b</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 [8]:</div>\n<div class=\"inner_cell\">\n <div class=\"input_area\">\n<div class=\" highlight hl-ipython3\"><pre><span></span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">absolutni_soucet</span><span class=\"p\">(</span><span class=\"mi\">1</span><span class=\"p\">,</span> <span class=\"mi\">2</span><span class=\"p\">))</span>\n<span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">absolutni_soucet</span><span class=\"p\">(</span><span class=\"mi\">100</span><span class=\"p\">,</span> <span class=\"mi\">200</span><span class=\"p\">))</span>\n<span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">absolutni_soucet</span><span class=\"p\">(</span><span class=\"o\">-</span><span class=\"mi\">1</span><span class=\"p\">,</span> <span class=\"o\">-</span><span class=\"mi\">2</span><span class=\"p\">))</span>\n<span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">absolutni_soucet</span><span class=\"p\">(</span><span class=\"o\">-</span><span class=\"mi\">1</span><span class=\"p\">,</span> <span class=\"mi\">2</span><span class=\"p\">))</span>\n<span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">absolutni_soucet</span><span class=\"p\">(</span><span class=\"mi\">100</span><span class=\"p\">,</span> <span class=\"o\">-</span><span class=\"mi\">2</span><span class=\"p\">))</span>\n</pre></div>\n\n </div>\n</div>\n</div>\n\n<div class=\"output_wrapper\">\n<div class=\"output\">\n\n\n<div class=\"output_area\">\n\n <div class=\"prompt\"></div>\n\n\n<div class=\"output_subarea output_stream output_stdout output_text\">\n<pre>3\n300\n3\n3\n102\n</pre>\n</div>\n</div>\n\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>List comprehensions</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>Jedná se o zápis s Pythonu s jehož pomocí se dají jednoduše vytvářet seznamy.</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 [9]:</div>\n<div class=\"inner_cell\">\n <div class=\"input_area\">\n<div class=\" highlight hl-ipython3\"><pre><span></span><span class=\"n\">seznam_mocnin</span> <span class=\"o\">=</span> <span class=\"p\">[]</span>\n\n<span class=\"k\">for</span> <span class=\"n\">x</span> <span class=\"ow\">in</span> <span class=\"nb\">range</span><span class=\"p\">(</span><span class=\"mi\">10</span><span class=\"p\">):</span>\n <span class=\"n\">seznam_mocnin</span><span class=\"o\">.</span><span class=\"n\">append</span><span class=\"p\">(</span><span class=\"n\">x</span> <span class=\"o\">**</span> <span class=\"mi\">2</span><span class=\"p\">)</span>\n\n<span class=\"n\">seznam_mocnin</span>\n</pre></div>\n\n </div>\n</div>\n</div>\n\n<div class=\"output_wrapper\">\n<div class=\"output\">\n\n\n<div class=\"output_area\">\n\n <div class=\"prompt output_prompt\">Out[9]:</div>\n\n\n\n\n<div class=\"output_text output_subarea output_execute_result\">\n<pre>[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]</pre>\n</div>\n\n</div>\n\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 [10]:</div>\n<div class=\"inner_cell\">\n <div class=\"input_area\">\n<div class=\" highlight hl-ipython3\"><pre><span></span><span class=\"p\">[</span><span class=\"n\">x</span> <span class=\"k\">for</span> <span class=\"n\">x</span> <span class=\"ow\">in</span> <span class=\"nb\">range</span><span class=\"p\">(</span><span class=\"mi\">10</span><span class=\"p\">)]</span>\n</pre></div>\n\n </div>\n</div>\n</div>\n\n<div class=\"output_wrapper\">\n<div class=\"output\">\n\n\n<div class=\"output_area\">\n\n <div class=\"prompt output_prompt\">Out[10]:</div>\n\n\n\n\n<div class=\"output_text output_subarea output_execute_result\">\n<pre>[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]</pre>\n</div>\n\n</div>\n\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 [11]:</div>\n<div class=\"inner_cell\">\n <div class=\"input_area\">\n<div class=\" highlight hl-ipython3\"><pre><span></span><span class=\"p\">[</span><span class=\"n\">x</span><span class=\"o\">**</span><span class=\"mi\">2</span> <span class=\"k\">for</span> <span class=\"n\">x</span> <span class=\"ow\">in</span> <span class=\"nb\">range</span><span class=\"p\">(</span><span class=\"mi\">10</span><span class=\"p\">)]</span>\n</pre></div>\n\n </div>\n</div>\n</div>\n\n<div class=\"output_wrapper\">\n<div class=\"output\">\n\n\n<div class=\"output_area\">\n\n <div class=\"prompt output_prompt\">Out[11]:</div>\n\n\n\n\n<div class=\"output_text output_subarea output_execute_result\">\n<pre>[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]</pre>\n</div>\n\n</div>\n\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 [12]:</div>\n<div class=\"inner_cell\">\n <div class=\"input_area\">\n<div class=\" highlight hl-ipython3\"><pre><span></span><span class=\"p\">[</span><span class=\"n\">x</span><span class=\"o\">**</span><span class=\"mi\">2</span> <span class=\"k\">for</span> <span class=\"n\">x</span> <span class=\"ow\">in</span> <span class=\"nb\">range</span><span class=\"p\">(</span><span class=\"mi\">10</span><span class=\"p\">)</span> <span class=\"k\">if</span> <span class=\"n\">x</span> <span class=\"o\">%</span> <span class=\"mi\">2</span> <span class=\"o\">==</span> <span class=\"mi\">0</span><span class=\"p\">]</span>\n</pre></div>\n\n </div>\n</div>\n</div>\n\n<div class=\"output_wrapper\">\n<div class=\"output\">\n\n\n<div class=\"output_area\">\n\n <div class=\"prompt output_prompt\">Out[12]:</div>\n\n\n\n\n<div class=\"output_text output_subarea output_execute_result\">\n<pre>[0, 4, 16, 36, 64]</pre>\n</div>\n\n</div>\n\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 [13]:</div>\n<div class=\"inner_cell\">\n <div class=\"input_area\">\n<div class=\" highlight hl-ipython3\"><pre><span></span><span class=\"p\">[(</span><span class=\"n\">x</span><span class=\"p\">,</span> <span class=\"n\">x</span><span class=\"o\">**</span><span class=\"mi\">2</span><span class=\"p\">)</span> <span class=\"k\">for</span> <span class=\"n\">x</span> <span class=\"ow\">in</span> <span class=\"nb\">range</span><span class=\"p\">(</span><span class=\"mi\">10</span><span class=\"p\">)]</span>\n</pre></div>\n\n </div>\n</div>\n</div>\n\n<div class=\"output_wrapper\">\n<div class=\"output\">\n\n\n<div class=\"output_area\">\n\n <div class=\"prompt output_prompt\">Out[13]:</div>\n\n\n\n\n<div class=\"output_text output_subarea output_execute_result\">\n<pre>[(0, 0),\n (1, 1),\n (2, 4),\n (3, 9),\n (4, 16),\n (5, 25),\n (6, 36),\n (7, 49),\n (8, 64),\n (9, 81)]</pre>\n</div>\n\n</div>\n\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 [14]:</div>\n<div class=\"inner_cell\">\n <div class=\"input_area\">\n<div class=\" highlight hl-ipython3\"><pre><span></span><span class=\"p\">[[</span><span class=\"n\">y</span> <span class=\"k\">for</span> <span class=\"n\">y</span> <span class=\"ow\">in</span> <span class=\"nb\">range</span><span class=\"p\">(</span><span class=\"mi\">3</span><span class=\"p\">)]</span> <span class=\"k\">for</span> <span class=\"n\">x</span> <span class=\"ow\">in</span> <span class=\"nb\">range</span><span class=\"p\">(</span><span class=\"mi\">10</span><span class=\"p\">)]</span>\n</pre></div>\n\n </div>\n</div>\n</div>\n\n<div class=\"output_wrapper\">\n<div class=\"output\">\n\n\n<div class=\"output_area\">\n\n <div class=\"prompt output_prompt\">Out[14]:</div>\n\n\n\n\n<div class=\"output_text output_subarea output_execute_result\">\n<pre>[[0, 1, 2],\n [0, 1, 2],\n [0, 1, 2],\n [0, 1, 2],\n [0, 1, 2],\n [0, 1, 2],\n [0, 1, 2],\n [0, 1, 2],\n [0, 1, 2],\n [0, 1, 2]]</pre>\n</div>\n\n</div>\n\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>Tabulka s hracím polem</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<h3>Řešení 1</h3>\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 [ ]:</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\">vytvor_tabulku</span><span class=\"p\">():</span>\n <span class=\"n\">zap_tabulka</span> <span class=\"o\">=</span> <span class=\"p\">[]</span>\n\n <span class=\"k\">for</span> <span class=\"n\">rada_x</span> <span class=\"ow\">in</span> <span class=\"s1\">'.'</span><span class=\"p\">,</span> <span class=\"s1\">'.'</span><span class=\"p\">,</span> <span class=\"s1\">'.'</span><span class=\"p\">,</span> <span class=\"s1\">'.'</span><span class=\"p\">,</span> <span class=\"s1\">'.'</span><span class=\"p\">,</span> <span class=\"s1\">'.'</span><span class=\"p\">,</span> <span class=\"s1\">'.'</span><span class=\"p\">,</span> <span class=\"s1\">'.'</span><span class=\"p\">,</span> <span class=\"s1\">'.'</span><span class=\"p\">,</span> <span class=\"s1\">'.'</span><span class=\"p\">:</span>\n <span class=\"n\">radek</span> <span class=\"o\">=</span> <span class=\"p\">[]</span>\n <span class=\"k\">for</span> <span class=\"n\">rada_y</span> <span class=\"ow\">in</span> <span class=\"s1\">'.'</span><span class=\"p\">,</span> <span class=\"s1\">'.'</span><span class=\"p\">,</span> <span class=\"s1\">'.'</span><span class=\"p\">,</span> <span class=\"s1\">'.'</span><span class=\"p\">,</span> <span class=\"s1\">'.'</span><span class=\"p\">,</span> <span class=\"s1\">'.'</span><span class=\"p\">,</span> <span class=\"s1\">'.'</span><span class=\"p\">,</span> <span class=\"s1\">'.'</span><span class=\"p\">,</span> <span class=\"s1\">'.'</span><span class=\"p\">,</span> <span class=\"s1\">'.'</span><span class=\"p\">:</span>\n <span class=\"n\">radek</span><span class=\"o\">.</span><span class=\"n\">append</span><span class=\"p\">(</span><span class=\"n\">rada_y</span><span class=\"p\">)</span>\n <span class=\"n\">zap_tabulka</span><span class=\"o\">.</span><span class=\"n\">append</span><span class=\"p\">(</span><span class=\"n\">radek</span><span class=\"p\">)</span>\n <span class=\"k\">return</span> <span class=\"n\">zap_tabulka</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<h3>Řešení 2</h3>\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 [ ]:</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\">vytvor_prazdne_herni_pole</span><span class=\"p\">(</span><span class=\"n\">r</span><span class=\"p\">,</span><span class=\"n\">s</span><span class=\"p\">):</span>\n <span class=\"n\">seznam_radku</span> <span class=\"o\">=</span> <span class=\"p\">[]</span>\n <span class=\"k\">for</span> <span class=\"n\">a</span> <span class=\"ow\">in</span> <span class=\"nb\">range</span><span class=\"p\">(</span><span class=\"n\">r</span><span class=\"p\">):</span>\n <span class=\"n\">radek</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s2\">"."</span><span class=\"p\">]</span>\n <span class=\"k\">for</span> <span class=\"n\">b</span> <span class=\"ow\">in</span> <span class=\"nb\">range</span><span class=\"p\">(</span><span class=\"n\">s</span><span class=\"o\">-</span><span class=\"mi\">1</span><span class=\"p\">):</span>\n <span class=\"n\">radek</span><span class=\"o\">.</span><span class=\"n\">append</span><span class=\"p\">(</span><span class=\"s2\">"."</span><span class=\"p\">)</span>\n <span class=\"n\">seznam_radku</span><span class=\"o\">.</span><span class=\"n\">append</span><span class=\"p\">(</span><span class=\"n\">radek</span><span class=\"p\">)</span>\n <span class=\"k\">return</span> <span class=\"n\">seznam_radku</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<h3>Správné řešení</h3>\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 [ ]:</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\">vytvor_tabulku</span><span class=\"p\">(</span><span class=\"n\">velikost</span><span class=\"p\">):</span>\n <span class=\"n\">seznam_radku</span> <span class=\"o\">=</span> <span class=\"p\">[]</span>\n <span class=\"k\">for</span> <span class=\"n\">a</span> <span class=\"ow\">in</span> <span class=\"nb\">range</span><span class=\"p\">(</span><span class=\"n\">velikost</span><span class=\"p\">):</span>\n <span class=\"n\">radek</span> <span class=\"o\">=</span> <span class=\"p\">[]</span>\n <span class=\"k\">for</span> <span class=\"n\">b</span> <span class=\"ow\">in</span> <span class=\"nb\">range</span><span class=\"p\">(</span><span class=\"n\">velikost</span><span class=\"p\">):</span>\n <span class=\"n\">radek</span><span class=\"o\">.</span><span class=\"n\">append</span><span class=\"p\">(</span><span class=\"s2\">"."</span><span class=\"p\">)</span>\n <span class=\"n\">seznam_radku</span><span class=\"o\">.</span><span class=\"n\">append</span><span class=\"p\">(</span><span class=\"n\">radek</span><span class=\"p\">)</span>\n <span class=\"k\">return</span> <span class=\"n\">seznam_radku</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<h3>Správné a krátké řešení</h3>\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 [ ]:</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\">vytvor_tabulku</span><span class=\"p\">(</span><span class=\"n\">velikost</span><span class=\"p\">):</span>\n <span class=\"n\">seznam_radku</span> <span class=\"o\">=</span> <span class=\"p\">[]</span>\n <span class=\"k\">for</span> <span class=\"n\">a</span> <span class=\"ow\">in</span> <span class=\"nb\">range</span><span class=\"p\">(</span><span class=\"n\">velikost</span><span class=\"p\">):</span>\n <span class=\"n\">radek</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s2\">"."</span><span class=\"p\">]</span> <span class=\"o\">*</span> <span class=\"n\">velikost</span>\n <span class=\"n\">seznam_radku</span><span class=\"o\">.</span><span class=\"n\">append</span><span class=\"p\">(</span><span class=\"n\">radek</span><span class=\"p\">)</span>\n <span class=\"k\">return</span> <span class=\"n\">seznam_radku</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<h3>Krátké řešení (s pomocí list comprehensions)</h3>\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 [ ]:</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\">vytvor_tabulku</span><span class=\"p\">(</span><span class=\"n\">velikost</span><span class=\"p\">):</span>\n <span class=\"n\">tabulka</span> <span class=\"o\">=</span> <span class=\"p\">[]</span>\n <span class=\"k\">for</span> <span class=\"n\">x</span> <span class=\"ow\">in</span> <span class=\"nb\">range</span><span class=\"p\">(</span><span class=\"n\">velikost</span><span class=\"p\">):</span>\n <span class=\"n\">radek</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s1\">'.'</span> <span class=\"k\">for</span> <span class=\"n\">x</span> <span class=\"ow\">in</span> <span class=\"nb\">range</span><span class=\"p\">(</span><span class=\"n\">velikost</span><span class=\"p\">)]</span>\n <span class=\"n\">tabulka</span><span class=\"o\">.</span><span class=\"n\">append</span><span class=\"p\">(</span><span class=\"n\">radek</span><span class=\"p\">)</span>\n <span class=\"k\">return</span> <span class=\"n\">tabulka</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<h3>Nejkratší řešení (je nejlepší?)</h3>\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 [ ]:</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\">vytvor_tabulku</span><span class=\"p\">(</span><span class=\"n\">velikost</span><span class=\"p\">):</span>\n <span class=\"k\">return</span> <span class=\"p\">[</span><span class=\"nb\">list</span><span class=\"p\">(</span><span class=\"s1\">'.'</span> <span class=\"o\">*</span> <span class=\"n\">velikost</span><span class=\"p\">)</span> <span class=\"k\">for</span> <span class=\"n\">x</span> <span class=\"ow\">in</span> <span class=\"nb\">range</span><span class=\"p\">(</span><span class=\"n\">velikost</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<h3>Je vytvoření kompletní tabulky se všemi hracími políčky vážně potřeba?</h3>\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>Had</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 [ ]:</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\">velikost_hraciho_pole</span><span class=\"p\">():</span>\n <span class=\"sd\">"""Zjistí od uživatele rozumnou velikost herního pole"""</span>\n <span class=\"k\">while</span> <span class=\"kc\">True</span><span class=\"p\">:</span>\n <span class=\"n\">odpoved</span> <span class=\"o\">=</span> <span class=\"nb\">input</span><span class=\"p\">(</span><span class=\"s1\">'Zadej velikost pole pro hada: '</span><span class=\"p\">)</span>\n <span class=\"k\">try</span><span class=\"p\">:</span>\n <span class=\"n\">velikost</span> <span class=\"o\">=</span> <span class=\"nb\">int</span><span class=\"p\">(</span><span class=\"n\">odpoved</span><span class=\"p\">)</span>\n <span class=\"k\">except</span> <span class=\"ne\">ValueError</span><span class=\"p\">:</span>\n <span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"s1\">'Velikost musí být celé číslo'</span><span class=\"p\">)</span>\n <span class=\"k\">else</span><span class=\"p\">:</span>\n <span class=\"k\">if</span> <span class=\"n\">velikost</span> <span class=\"o\">></span> <span class=\"mi\">5</span><span class=\"p\">:</span>\n <span class=\"k\">break</span>\n <span class=\"k\">else</span><span class=\"p\">:</span>\n <span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"s1\">'Pole musí být rozumně veliké!'</span><span class=\"p\">)</span>\n\n <span class=\"k\">return</span> <span class=\"n\">velikost</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 [15]:</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\">vykresli_mapu</span><span class=\"p\">(</span><span class=\"n\">velikost</span><span class=\"p\">,</span> <span class=\"n\">had</span><span class=\"p\">,</span> <span class=\"n\">ovoce</span><span class=\"p\">):</span>\n <span class=\"sd\">"""Vykreslí herní mapu s ovocem a hadem na správných místech"""</span>\n <span class=\"k\">for</span> <span class=\"n\">x</span> <span class=\"ow\">in</span> <span class=\"nb\">range</span><span class=\"p\">(</span><span class=\"n\">velikost</span><span class=\"p\">):</span>\n <span class=\"k\">for</span> <span class=\"n\">y</span> <span class=\"ow\">in</span> <span class=\"nb\">range</span><span class=\"p\">(</span><span class=\"n\">velikost</span><span class=\"p\">):</span>\n <span class=\"k\">if</span> <span class=\"p\">(</span><span class=\"n\">x</span><span class=\"p\">,</span> <span class=\"n\">y</span><span class=\"p\">)</span> <span class=\"ow\">in</span> <span class=\"n\">had</span><span class=\"p\">:</span>\n <span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"s1\">'X'</span><span class=\"p\">,</span> <span class=\"n\">end</span><span class=\"o\">=</span><span class=\"s1\">' '</span><span class=\"p\">)</span>\n <span class=\"k\">elif</span> <span class=\"p\">(</span><span class=\"n\">x</span><span class=\"p\">,</span> <span class=\"n\">y</span><span class=\"p\">)</span> <span class=\"ow\">in</span> <span class=\"n\">ovoce</span><span class=\"p\">:</span>\n <span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"s1\">'?'</span><span class=\"p\">,</span> <span class=\"n\">end</span><span class=\"o\">=</span><span class=\"s1\">' '</span><span class=\"p\">)</span>\n <span class=\"k\">else</span><span class=\"p\">:</span>\n <span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"s1\">'.'</span><span class=\"p\">,</span> <span class=\"n\">end</span><span class=\"o\">=</span><span class=\"s1\">' '</span><span class=\"p\">)</span>\n <span class=\"nb\">print</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 [16]:</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\">posun</span><span class=\"p\">(</span><span class=\"n\">velikost</span><span class=\"p\">,</span> <span class=\"n\">had</span><span class=\"p\">,</span> <span class=\"n\">ovoce</span><span class=\"p\">):</span>\n <span class=\"sd\">"""Posune hada v určitém směru a zajistí jeho prodloužení při snězení jídla"""</span>\n <span class=\"k\">while</span> <span class=\"kc\">True</span><span class=\"p\">:</span>\n <span class=\"n\">smer</span> <span class=\"o\">=</span> <span class=\"nb\">input</span><span class=\"p\">(</span><span class=\"s1\">'Zadej smer posunu [s, j, v, z]: '</span><span class=\"p\">)</span>\n <span class=\"n\">smer</span> <span class=\"o\">=</span> <span class=\"n\">smer</span><span class=\"o\">.</span><span class=\"n\">lower</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">strip</span><span class=\"p\">()</span>\n <span class=\"k\">if</span> <span class=\"n\">smer</span> <span class=\"ow\">not</span> <span class=\"ow\">in</span> <span class=\"p\">(</span><span class=\"s1\">'s'</span><span class=\"p\">,</span> <span class=\"s1\">'j'</span><span class=\"p\">,</span> <span class=\"s1\">'v'</span><span class=\"p\">,</span> <span class=\"s1\">'z'</span><span class=\"p\">):</span>\n <span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"s1\">'Nekorektni smer!'</span><span class=\"p\">)</span>\n <span class=\"k\">else</span><span class=\"p\">:</span>\n <span class=\"k\">break</span>\n\n <span class=\"n\">hlava</span> <span class=\"o\">=</span> <span class=\"n\">had</span><span class=\"p\">[</span><span class=\"o\">-</span><span class=\"mi\">1</span><span class=\"p\">]</span>\n <span class=\"n\">x</span><span class=\"p\">,</span> <span class=\"n\">y</span> <span class=\"o\">=</span> <span class=\"n\">hlava</span>\n <span class=\"k\">if</span> <span class=\"n\">smer</span> <span class=\"o\">==</span> <span class=\"s1\">'s'</span><span class=\"p\">:</span>\n <span class=\"n\">nova_hlava</span> <span class=\"o\">=</span> <span class=\"n\">x</span><span class=\"o\">-</span><span class=\"mi\">1</span><span class=\"p\">,</span> <span class=\"n\">y</span>\n <span class=\"k\">elif</span> <span class=\"n\">smer</span> <span class=\"o\">==</span> <span class=\"s1\">'j'</span><span class=\"p\">:</span>\n <span class=\"n\">nova_hlava</span> <span class=\"o\">=</span> <span class=\"n\">x</span><span class=\"o\">+</span><span class=\"mi\">1</span><span class=\"p\">,</span> <span class=\"n\">y</span>\n <span class=\"k\">elif</span> <span class=\"n\">smer</span> <span class=\"o\">==</span> <span class=\"s1\">'v'</span><span class=\"p\">:</span>\n <span class=\"n\">nova_hlava</span> <span class=\"o\">=</span> <span class=\"n\">x</span><span class=\"p\">,</span> <span class=\"n\">y</span><span class=\"o\">+</span><span class=\"mi\">1</span>\n <span class=\"k\">elif</span> <span class=\"n\">smer</span> <span class=\"o\">==</span> <span class=\"s1\">'z'</span><span class=\"p\">:</span>\n <span class=\"n\">nova_hlava</span> <span class=\"o\">=</span> <span class=\"n\">x</span><span class=\"p\">,</span> <span class=\"n\">y</span><span class=\"o\">-</span><span class=\"mi\">1</span>\n\n <span class=\"k\">if</span> <span class=\"n\">nova_hlava</span> <span class=\"ow\">in</span> <span class=\"n\">had</span><span class=\"p\">:</span>\n <span class=\"k\">raise</span> <span class=\"ne\">ValueError</span><span class=\"p\">(</span><span class=\"s1\">'GAME OVER! Narazil si sam do sebe'</span><span class=\"p\">)</span>\n\n <span class=\"n\">x</span><span class=\"p\">,</span> <span class=\"n\">y</span> <span class=\"o\">=</span> <span class=\"n\">nova_hlava</span>\n\n <span class=\"k\">if</span> <span class=\"n\">x</span> <span class=\"o\"><</span> <span class=\"mi\">0</span> <span class=\"ow\">or</span> <span class=\"n\">x</span> <span class=\"o\">></span> <span class=\"n\">velikost</span><span class=\"o\">-</span><span class=\"mi\">1</span> <span class=\"ow\">or</span> <span class=\"n\">y</span> <span class=\"o\"><</span> <span class=\"mi\">0</span> <span class=\"ow\">or</span> <span class=\"n\">y</span> <span class=\"o\">></span> <span class=\"n\">velikost</span><span class=\"o\">-</span><span class=\"mi\">1</span><span class=\"p\">:</span>\n <span class=\"k\">raise</span> <span class=\"ne\">ValueError</span><span class=\"p\">(</span><span class=\"s1\">'GAME OVER! Vyjel si mimo herni pole'</span><span class=\"p\">)</span>\n\n <span class=\"k\">if</span> <span class=\"n\">nova_hlava</span> <span class=\"ow\">in</span> <span class=\"n\">ovoce</span><span class=\"p\">:</span>\n <span class=\"n\">ovoce</span><span class=\"o\">.</span><span class=\"n\">remove</span><span class=\"p\">(</span><span class=\"n\">nova_hlava</span><span class=\"p\">)</span>\n <span class=\"k\">else</span><span class=\"p\">:</span>\n <span class=\"k\">del</span> <span class=\"n\">had</span><span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span>\n\n <span class=\"n\">had</span><span class=\"o\">.</span><span class=\"n\">append</span><span class=\"p\">(</span><span class=\"n\">nova_hlava</span><span class=\"p\">)</span>\n <span class=\"k\">return</span> <span class=\"kc\">True</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 [17]:</div>\n<div class=\"inner_cell\">\n <div class=\"input_area\">\n<div class=\" highlight hl-ipython3\"><pre><span></span><span class=\"kn\">from</span> <span class=\"nn\">random</span> <span class=\"k\">import</span> <span class=\"n\">randrange</span>\n\n<span class=\"k\">def</span> <span class=\"nf\">pridej_ovoce</span><span class=\"p\">(</span><span class=\"n\">velikost</span><span class=\"p\">,</span> <span class=\"n\">had</span><span class=\"p\">,</span> <span class=\"n\">ovoce</span><span class=\"p\">):</span>\n <span class=\"sd\">"""Přidá další ovoce na herní plochu mimo souřadnice hada"""</span>\n <span class=\"n\">ovoce</span><span class=\"o\">.</span><span class=\"n\">append</span><span class=\"p\">((</span><span class=\"n\">randrange</span><span class=\"p\">(</span><span class=\"mi\">0</span><span class=\"p\">,</span> <span class=\"n\">velikost</span><span class=\"p\">),</span> <span class=\"n\">randrange</span><span class=\"p\">(</span><span class=\"mi\">0</span><span class=\"p\">,</span> <span class=\"n\">velikost</span><span class=\"p\">)))</span>\n <span class=\"k\">while</span> <span class=\"n\">ovoce</span><span class=\"p\">[</span><span class=\"o\">-</span><span class=\"mi\">1</span><span class=\"p\">]</span> <span class=\"ow\">in</span> <span class=\"n\">had</span><span class=\"p\">:</span>\n <span class=\"k\">del</span> <span class=\"n\">ovoce</span><span class=\"p\">[</span><span class=\"o\">-</span><span class=\"mi\">1</span><span class=\"p\">]</span>\n <span class=\"n\">ovoce</span><span class=\"o\">.</span><span class=\"n\">append</span><span class=\"p\">((</span><span class=\"n\">randrange</span><span class=\"p\">(</span><span class=\"mi\">0</span><span class=\"p\">,</span> <span class=\"n\">velikost</span><span class=\"p\">),</span> <span class=\"n\">randrange</span><span class=\"p\">(</span><span class=\"mi\">0</span><span class=\"p\">,</span> <span class=\"n\">velikost</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 [ ]:</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\">hra</span><span class=\"p\">():</span>\n <span class=\"sd\">"""Hlavní části hry spojeny ve finální celek"""</span>\n <span class=\"n\">velikost</span> <span class=\"o\">=</span> <span class=\"n\">velikost_hraciho_pole</span><span class=\"p\">()</span>\n\n <span class=\"n\">had</span> <span class=\"o\">=</span> <span class=\"p\">[(</span><span class=\"mi\">0</span><span class=\"p\">,</span> <span class=\"mi\">0</span><span class=\"p\">),</span> <span class=\"p\">(</span><span class=\"mi\">0</span><span class=\"p\">,</span> <span class=\"mi\">1</span><span class=\"p\">),</span> <span class=\"p\">(</span><span class=\"mi\">0</span><span class=\"p\">,</span> <span class=\"mi\">2</span><span class=\"p\">)]</span>\n <span class=\"n\">ovoce</span> <span class=\"o\">=</span> <span class=\"p\">[]</span>\n <span class=\"n\">pridej_ovoce</span><span class=\"p\">(</span><span class=\"n\">velikost</span><span class=\"p\">,</span> <span class=\"n\">had</span><span class=\"p\">,</span> <span class=\"n\">ovoce</span><span class=\"p\">)</span>\n\n <span class=\"n\">vykresli_mapu</span><span class=\"p\">(</span><span class=\"n\">velikost</span><span class=\"p\">,</span> <span class=\"n\">had</span><span class=\"p\">,</span> <span class=\"n\">ovoce</span><span class=\"p\">)</span>\n\n <span class=\"k\">while</span> <span class=\"n\">posun</span><span class=\"p\">(</span><span class=\"n\">velikost</span><span class=\"p\">,</span> <span class=\"n\">had</span><span class=\"p\">,</span> <span class=\"n\">ovoce</span><span class=\"p\">):</span>\n <span class=\"n\">vykresli_mapu</span><span class=\"p\">(</span><span class=\"n\">velikost</span><span class=\"p\">,</span> <span class=\"n\">had</span><span class=\"p\">,</span> <span class=\"n\">ovoce</span><span class=\"p\">)</span>\n <span class=\"k\">if</span> <span class=\"ow\">not</span> <span class=\"n\">ovoce</span><span class=\"p\">:</span>\n <span class=\"n\">pridej_ovoce</span><span class=\"p\">(</span><span class=\"n\">velikost</span><span class=\"p\">,</span> <span class=\"n\">had</span><span class=\"p\">,</span> <span class=\"n\">ovoce</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 [ ]:</div>\n<div class=\"inner_cell\">\n <div class=\"input_area\">\n<div class=\" highlight hl-ipython3\"><pre><span></span><span class=\"n\">hra</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>Rubber duck problem solving</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><img src=\"https://raw.githubusercontent.com/RubberDuckDebugging/rubberduckdebugging.github.io/master/images/rubberducky.png\" alt=\"Gumová kačenka\"></p>\n<p><a href=\"https://rubberduckdebugging.com/\">rubberduckdebugging.com</a></p>\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>Jde o techniku řešení problému, při které se svůj problém snažíte vysvětlit někomu (nebo v případě gumové kachny něčemu), kdo programování nemusí vůbec rozumět. Když řešenou problematiku a vaše současné řešení popisujete nahlas, uvědomíte si, co váš program aktuálně dělá a co by dělat měl, což zpravidla vede k vyřešení problému.</p>\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é rady a poznatky</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<h2>Snažte se!!!</h2>\n</div>\n</div>\n</div>\n \n\n\n\n\n " } } }