V této lekci si vyzkoušíš želví kreslení.
Pusť Python v interaktivním módu (bez souboru .py).
$ python
>>>
(Znaky >
a $
píše počítač, ne ty.
Na Windows bude místo $
znak
>
a před $
nebo
>
může být ještě něco dalšího.)
Pak napiš:
from turtle import forward
forward(50)
Ukáže se okýnko se šipkou, které nezavírej. Dej ho tak, abys viděla i příkazovou řádku i nové okýnko.
Želva je převlečená za šipku. Ale dá se odmaskovat:
from turtle import shape
shape('turtle')
Želva se umí otáčet a lézt po papíře. Na ocase má připevněný štětec, kterým kreslí čáru.
from turtle import left, right
forward(50)
left(60)
forward(50)
right(60)
forward(50)
Zkus chvíli dávat želvě příkazy.
Když se ti něco nelíbí, můžeš buď zavřít kreslící okno,
nebo naimportovat a použít funkci clear()
.
Interaktivní mód je skvělý na hraní, ale teď přejdeme zase na soubory.
Vytvoř si soubor ~/pyladies/03/zelva.py
.
Adresář ~/pyladies
se u tebe může jmenovat jinak – viz instalace Pythonu.
Jestli chceš pro soubor použít jiné jméno, můžeš, ale
nepojmenovávej ho turtle.py
.
Do souboru napiš příkazy na nakreslení obrázku
a na konec zavolej funkci exitonclick
(importovanou z modulu turtle
).
Otázka
Co dělá funkce exitonclick
?
Až to budeš mít hotové, zkusíme začít kreslit obrázky:
Nakresli čtverec.
Čtverec má čtyři rovné strany a čtyři rohy po 90°.
Nakresli obdélník.
Zkus zařídit, aby se po nakreslení „dívala” želva doprava (tak jako na začátku).
Nakresli tři čtverce, každý otočený třeba o 20°.
Tolik kódu! Tohle musí jít nějak zjednodušit!
Jde.
Pojďme se naučit příkaz for
.
Zkus co dělá následující program.
Ulož ho třeba do
~/pyladies/03/cyklus.py
for cislo in range(5):
print(cislo)
for pozdrav in 'Ahoj', 'Hello', 'Hola', 'Hei', 'SYN':
print(pozdrav + '!')
Co dělá příkaz for
?
Zkus popsat, jak pracuje následující program.
soucet = 0
for cislo in 8, 45, 9, 21:
soucet = soucet + cislo
print(soucet)
A znovu ke kreslení, tentokrát s použitím cyklů.
Nakresli čtverec.
V programu použij forward
jen dvakrát:
jednou v importu, jednou jako volání.
Funkce penup
a pendown
z modulu turtle
řeknou želvě,
aby přestala, resp. začala kreslit.
Zkus nakreslit přerušovanou čáru.
Pak zkus zařídit, aby jednotlivé čárky byly postupně větší a větší.
Nápověda
Co přesně dělá příkaz for
?
Dá se využít proměnná, kterou nastavuje?
Nakonec nakresli 3 čtverce, každý otočený o 20°.
Tentokrát už víš, jak to dělat chytře: opakuj pomocí příkazu
for
, ne kopírováním kódu.
Máš-li hotovo, zkus nakreslit schody:
A máš-li i schody, zkus nakreslit těchto šest (nebo sedm?) šestiúhelníků:
{ "data": { "sessionMaterial": { "id": "session-material:2018/pyladies-ostrava-podzim:loops:1", "title": "Želva a cykly", "html": "\n \n \n\n <h1>🐍 🐢</h1>\n<p>V této lekci si vyzkoušíš <em>želví kreslení</em>.</p>\n<p>Pusť Python v <em>interaktivním módu</em> (bez souboru .py).</p>\n<div class=\"highlight\"><pre><span></span><span class=\"go\">$ python</span>\n\n<span class=\"go\">>>></span>\n</pre></div><div class=\"admonition note\"><p>(Znaky <code>></code> a <code>$</code> píše počítač, ne ty.\nNa Windows bude místo <code>$</code> znak\n<code>></code> a před <code>$</code> nebo\n<code>></code> může být ještě něco dalšího.)</p>\n</div><p>Pak napiš:</p>\n<div class=\"highlight\"><pre><span></span><span class=\"kn\">from</span> <span class=\"nn\">turtle</span> <span class=\"kn\">import</span> <span class=\"n\">forward</span>\n\n<span class=\"n\">forward</span><span class=\"p\">(</span><span class=\"mi\">50</span><span class=\"p\">)</span>\n</pre></div><p>Ukáže se okýnko se šipkou, které nezavírej.\nDej ho tak, abys viděla i příkazovou řádku\ni nové okýnko.</p>\n<h2>A kde je ta želva?</h2>\n<p>Želva je převlečená za šipku. Ale dá se odmaskovat:</p>\n<div class=\"highlight\"><pre><span></span><span class=\"kn\">from</span> <span class=\"nn\">turtle</span> <span class=\"kn\">import</span> <span class=\"n\">shape</span>\n\n<span class=\"n\">shape</span><span class=\"p\">(</span><span class=\"s1\">'turtle'</span><span class=\"p\">)</span>\n</pre></div><h2>Otáčení</h2>\n<p>Želva se umí otáčet a lézt po papíře.\nNa ocase má připevněný štětec, kterým kreslí čáru.</p>\n<div class=\"highlight\"><pre><span></span><span class=\"kn\">from</span> <span class=\"nn\">turtle</span> <span class=\"kn\">import</span> <span class=\"n\">left</span><span class=\"p\">,</span> <span class=\"n\">right</span>\n\n<span class=\"n\">forward</span><span class=\"p\">(</span><span class=\"mi\">50</span><span class=\"p\">)</span>\n<span class=\"n\">left</span><span class=\"p\">(</span><span class=\"mi\">60</span><span class=\"p\">)</span>\n<span class=\"n\">forward</span><span class=\"p\">(</span><span class=\"mi\">50</span><span class=\"p\">)</span>\n<span class=\"n\">right</span><span class=\"p\">(</span><span class=\"mi\">60</span><span class=\"p\">)</span>\n<span class=\"n\">forward</span><span class=\"p\">(</span><span class=\"mi\">50</span><span class=\"p\">)</span>\n</pre></div><p>Zkus chvíli dávat želvě příkazy.\nKdyž se ti něco nelíbí, můžeš buď zavřít kreslící okno,\nnebo naimportovat a použít funkci <code>clear()</code>.</p>\n<h2>Želví program</h2>\n<p>Interaktivní mód je skvělý na hraní,\nale teď přejdeme zase na soubory.</p>\n<p>Vytvoř si soubor <code><span class=\"pythondir\">~/pyladies</span>/03/zelva.py</code>.</p>\n<div class=\"admonition note\"><p>Adresář <code class=\"pythondir\">~/pyladies</code>\nse u tebe může jmenovat jinak – viz <a href=\"/2018/pyladies-ostrava-podzim/beginners/install/\">instalace Pythonu</a>.</p>\n</div><p>Jestli chceš pro soubor použít jiné jméno, můžeš, ale \nnepojmenovávej ho <code>turtle.py</code>.</p>\n<p>Do souboru napiš příkazy na nakreslení obrázku\na na konec zavolej funkci <code>exitonclick</code>\n(importovanou z modulu <code>turtle</code>).</p>\n<div class=\"admonition note\"><p class=\"admonition-title\">Otázka</p>\n<p>Co dělá funkce <code>exitonclick</code>?</p>\n</div><p>Až to budeš mít hotové, zkusíme začít kreslit\nobrázky:</p>\n<h3>Čtverec</h3>\n<p>Nakresli čtverec.</p>\n<p><img src=\"/2018/pyladies-ostrava-podzim/intro/turtle/static/turtle-square.png\" alt=\"Želví čtverec\"></p>\n<p>Čtverec má čtyři rovné strany\na čtyři rohy po 90°.</p>\n<div class=\"solution\" id=\"solution-0\">\n <h3>Řešení</h3>\n <div class=\"solution-cover\">\n <a href=\"/2018/pyladies-ostrava-podzim/intro/turtle/index/solutions/0/\"><span class=\"link-text\">Ukázat řešení</span></a>\n </div>\n <div class=\"solution-body\" aria-hidden=\"true\">\n <div class=\"highlight\"><pre><span></span><span class=\"kn\">from</span> <span class=\"nn\">turtle</span> <span class=\"kn\">import</span> <span class=\"n\">forward</span><span class=\"p\">,</span> <span class=\"n\">left</span><span class=\"p\">,</span> <span class=\"n\">exitonclick</span>\n\n<span class=\"n\">forward</span><span class=\"p\">(</span><span class=\"mi\">50</span><span class=\"p\">)</span>\n<span class=\"n\">left</span><span class=\"p\">(</span><span class=\"mi\">90</span><span class=\"p\">)</span>\n<span class=\"n\">forward</span><span class=\"p\">(</span><span class=\"mi\">50</span><span class=\"p\">)</span>\n<span class=\"n\">left</span><span class=\"p\">(</span><span class=\"mi\">90</span><span class=\"p\">)</span>\n<span class=\"n\">forward</span><span class=\"p\">(</span><span class=\"mi\">50</span><span class=\"p\">)</span>\n<span class=\"n\">left</span><span class=\"p\">(</span><span class=\"mi\">90</span><span class=\"p\">)</span>\n<span class=\"n\">forward</span><span class=\"p\">(</span><span class=\"mi\">50</span><span class=\"p\">)</span>\n<span class=\"n\">left</span><span class=\"p\">(</span><span class=\"mi\">90</span><span class=\"p\">)</span>\n\n<span class=\"n\">exitonclick</span><span class=\"p\">()</span>\n</pre></div>\n </div>\n</div><h3>Obdélník</h3>\n<p>Nakresli obdélník.</p>\n<p>Zkus zařídit, aby se po nakreslení „dívala” želva doprava (tak jako na začátku).</p>\n<p><img src=\"/2018/pyladies-ostrava-podzim/intro/turtle/static/turtle-rect.png\" alt=\"Želví obdélník\"></p>\n<div class=\"solution\" id=\"solution-1\">\n <h3>Řešení</h3>\n <div class=\"solution-cover\">\n <a href=\"/2018/pyladies-ostrava-podzim/intro/turtle/index/solutions/1/\"><span class=\"link-text\">Ukázat řešení</span></a>\n </div>\n <div class=\"solution-body\" aria-hidden=\"true\">\n <div class=\"highlight\"><pre><span></span><span class=\"kn\">from</span> <span class=\"nn\">turtle</span> <span class=\"kn\">import</span> <span class=\"n\">forward</span><span class=\"p\">,</span> <span class=\"n\">left</span><span class=\"p\">,</span> <span class=\"n\">exitonclick</span>\n\n<span class=\"n\">forward</span><span class=\"p\">(</span><span class=\"mi\">100</span><span class=\"p\">)</span>\n<span class=\"n\">left</span><span class=\"p\">(</span><span class=\"mi\">90</span><span class=\"p\">)</span>\n<span class=\"n\">forward</span><span class=\"p\">(</span><span class=\"mi\">50</span><span class=\"p\">)</span>\n<span class=\"n\">left</span><span class=\"p\">(</span><span class=\"mi\">90</span><span class=\"p\">)</span>\n<span class=\"n\">forward</span><span class=\"p\">(</span><span class=\"mi\">100</span><span class=\"p\">)</span>\n<span class=\"n\">left</span><span class=\"p\">(</span><span class=\"mi\">90</span><span class=\"p\">)</span>\n<span class=\"n\">forward</span><span class=\"p\">(</span><span class=\"mi\">50</span><span class=\"p\">)</span>\n<span class=\"n\">left</span><span class=\"p\">(</span><span class=\"mi\">90</span><span class=\"p\">)</span>\n\n<span class=\"n\">exitonclick</span><span class=\"p\">()</span>\n</pre></div>\n </div>\n</div><h3>Tři čtverce</h3>\n<p>Nakresli tři čtverce, každý otočený třeba o 20°.</p>\n<p><img src=\"/2018/pyladies-ostrava-podzim/intro/turtle/static/turtle-squares.png\" alt=\"Tři želví čtverce\"></p>\n<div class=\"solution\" id=\"solution-2\">\n <h3>Řešení</h3>\n <div class=\"solution-cover\">\n <a href=\"/2018/pyladies-ostrava-podzim/intro/turtle/index/solutions/2/\"><span class=\"link-text\">Ukázat řešení</span></a>\n </div>\n <div class=\"solution-body\" aria-hidden=\"true\">\n <div class=\"highlight\"><pre><span></span><span class=\"kn\">from</span> <span class=\"nn\">turtle</span> <span class=\"kn\">import</span> <span class=\"n\">forward</span><span class=\"p\">,</span> <span class=\"n\">left</span><span class=\"p\">,</span> <span class=\"n\">exitonclick</span>\n\n<span class=\"n\">forward</span><span class=\"p\">(</span><span class=\"mi\">50</span><span class=\"p\">)</span>\n<span class=\"n\">left</span><span class=\"p\">(</span><span class=\"mi\">90</span><span class=\"p\">)</span>\n<span class=\"n\">forward</span><span class=\"p\">(</span><span class=\"mi\">50</span><span class=\"p\">)</span>\n<span class=\"n\">left</span><span class=\"p\">(</span><span class=\"mi\">90</span><span class=\"p\">)</span>\n<span class=\"n\">forward</span><span class=\"p\">(</span><span class=\"mi\">50</span><span class=\"p\">)</span>\n<span class=\"n\">left</span><span class=\"p\">(</span><span class=\"mi\">90</span><span class=\"p\">)</span>\n<span class=\"n\">forward</span><span class=\"p\">(</span><span class=\"mi\">50</span><span class=\"p\">)</span>\n<span class=\"n\">left</span><span class=\"p\">(</span><span class=\"mi\">90</span><span class=\"p\">)</span>\n\n<span class=\"n\">left</span><span class=\"p\">(</span><span class=\"mi\">20</span><span class=\"p\">)</span>\n\n<span class=\"n\">forward</span><span class=\"p\">(</span><span class=\"mi\">50</span><span class=\"p\">)</span>\n<span class=\"n\">left</span><span class=\"p\">(</span><span class=\"mi\">90</span><span class=\"p\">)</span>\n<span class=\"n\">forward</span><span class=\"p\">(</span><span class=\"mi\">50</span><span class=\"p\">)</span>\n<span class=\"n\">left</span><span class=\"p\">(</span><span class=\"mi\">90</span><span class=\"p\">)</span>\n<span class=\"n\">forward</span><span class=\"p\">(</span><span class=\"mi\">50</span><span class=\"p\">)</span>\n<span class=\"n\">left</span><span class=\"p\">(</span><span class=\"mi\">90</span><span class=\"p\">)</span>\n<span class=\"n\">forward</span><span class=\"p\">(</span><span class=\"mi\">50</span><span class=\"p\">)</span>\n<span class=\"n\">left</span><span class=\"p\">(</span><span class=\"mi\">90</span><span class=\"p\">)</span>\n\n<span class=\"n\">left</span><span class=\"p\">(</span><span class=\"mi\">20</span><span class=\"p\">)</span>\n\n<span class=\"n\">forward</span><span class=\"p\">(</span><span class=\"mi\">50</span><span class=\"p\">)</span>\n<span class=\"n\">left</span><span class=\"p\">(</span><span class=\"mi\">90</span><span class=\"p\">)</span>\n<span class=\"n\">forward</span><span class=\"p\">(</span><span class=\"mi\">50</span><span class=\"p\">)</span>\n<span class=\"n\">left</span><span class=\"p\">(</span><span class=\"mi\">90</span><span class=\"p\">)</span>\n<span class=\"n\">forward</span><span class=\"p\">(</span><span class=\"mi\">50</span><span class=\"p\">)</span>\n<span class=\"n\">left</span><span class=\"p\">(</span><span class=\"mi\">90</span><span class=\"p\">)</span>\n<span class=\"n\">forward</span><span class=\"p\">(</span><span class=\"mi\">50</span><span class=\"p\">)</span>\n<span class=\"n\">left</span><span class=\"p\">(</span><span class=\"mi\">90</span><span class=\"p\">)</span>\n\n<span class=\"n\">exitonclick</span><span class=\"p\">()</span>\n</pre></div>\n </div>\n</div><h3>Jde to líp?</h3>\n<p>Tolik kódu! Tohle musí jít nějak zjednodušit!</p>\n<p>Jde.\nPojďme se naučit příkaz <code>for</code>.</p>\n<h2>Opakování</h2>\n<p>Zkus co dělá následující program.\nUlož ho třeba do\n<code><span class=\"pythondir\">~/pyladies</span>/03/cyklus.py</code></p>\n<div class=\"highlight\"><pre><span></span><span class=\"k\">for</span> <span class=\"n\">cislo</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\">print</span><span class=\"p\">(</span><span class=\"n\">cislo</span><span class=\"p\">)</span>\n\n<span class=\"k\">for</span> <span class=\"n\">pozdrav</span> <span class=\"ow\">in</span> <span class=\"s1\">'Ahoj'</span><span class=\"p\">,</span> <span class=\"s1\">'Hello'</span><span class=\"p\">,</span> <span class=\"s1\">'Hola'</span><span class=\"p\">,</span> <span class=\"s1\">'Hei'</span><span class=\"p\">,</span> <span class=\"s1\">'SYN'</span><span class=\"p\">:</span>\n <span class=\"k\">print</span><span class=\"p\">(</span><span class=\"n\">pozdrav</span> <span class=\"o\">+</span> <span class=\"s1\">'!'</span><span class=\"p\">)</span>\n</pre></div><p>Co dělá příkaz <code>for</code>?</p>\n<div class=\"solution\" id=\"solution-3\">\n <h3>Řešení</h3>\n <div class=\"solution-cover\">\n <a href=\"/2018/pyladies-ostrava-podzim/intro/turtle/index/solutions/3/\"><span class=\"link-text\">Ukázat řešení</span></a>\n </div>\n <div class=\"solution-body\" aria-hidden=\"true\">\n <p>Příkaz <code>for</code> opakuje část programu.\nOpakují se příkazy, které jsou pod <code>for</code>-em odsazené.\nPodobně jako se <code>if</code> vztahuje jen na odsazené příkazy pod ním.</p>\n<p>Příkaz <code>for x in range(n):</code> opakuje příkazy pod ním <var>n</var>-krát\na proměnnou <code>x</code> nastaví postupně na čísla od 0 do <var>n</var>-1.</p>\n<p>Příkaz <code>for x in a, b, c, d, ...:</code> opakuje příkazy pod ním;\nproměnnou <code>x</code> nastavuje postupně na <var>a</var>, <var>b</var>,\n<var>c</var> <var>d</var>, ...</p>\n </div>\n</div><h3>Přepisování proměnných</h3>\n<p>Zkus popsat, jak pracuje následující program.</p>\n<div class=\"highlight\"><pre><span></span><span class=\"n\">soucet</span> <span class=\"o\">=</span> <span class=\"mi\">0</span>\n\n<span class=\"k\">for</span> <span class=\"n\">cislo</span> <span class=\"ow\">in</span> <span class=\"mi\">8</span><span class=\"p\">,</span> <span class=\"mi\">45</span><span class=\"p\">,</span> <span class=\"mi\">9</span><span class=\"p\">,</span> <span class=\"mi\">21</span><span class=\"p\">:</span>\n <span class=\"n\">soucet</span> <span class=\"o\">=</span> <span class=\"n\">soucet</span> <span class=\"o\">+</span> <span class=\"n\">cislo</span>\n\n<span class=\"k\">print</span><span class=\"p\">(</span><span class=\"n\">soucet</span><span class=\"p\">)</span>\n</pre></div><div class=\"solution\" id=\"solution-4\">\n <h3>Řešení</h3>\n <div class=\"solution-cover\">\n <a href=\"/2018/pyladies-ostrava-podzim/intro/turtle/index/solutions/4/\"><span class=\"link-text\">Ukázat řešení</span></a>\n </div>\n <div class=\"solution-body\" aria-hidden=\"true\">\n <p>Příkaz <code>soucet = soucet + cislo</code> vypočítá hodnotu\n<code>soucet + cislo</code>, tedy přičte aktuální číslo k součtu\na výsledek uloží do proměnné <code>soucet</code>.\nNová hodnota součtu se pak použije v dalším průchodu cyklem.</p>\n<p>Na začátku je součet 0 a na konci se součet všech čísel vypíše.</p>\n </div>\n</div><h3>Čtverec</h3>\n<p>A znovu ke kreslení, tentokrát s použitím cyklů.</p>\n<p>Nakresli čtverec.</p>\n<p>V programu použij <code>forward</code> jen dvakrát:\njednou v importu, jednou jako volání.</p>\n<p><img src=\"/2018/pyladies-ostrava-podzim/intro/turtle/static/turtle-square.png\" alt=\"Želví čtverec\"></p>\n<div class=\"solution\" id=\"solution-5\">\n <h3>Řešení</h3>\n <div class=\"solution-cover\">\n <a href=\"/2018/pyladies-ostrava-podzim/intro/turtle/index/solutions/5/\"><span class=\"link-text\">Ukázat řešení</span></a>\n </div>\n <div class=\"solution-body\" aria-hidden=\"true\">\n <div class=\"highlight\"><pre><span></span><span class=\"kn\">from</span> <span class=\"nn\">turtle</span> <span class=\"kn\">import</span> <span class=\"n\">forward</span><span class=\"p\">,</span> <span class=\"n\">left</span><span class=\"p\">,</span> <span class=\"n\">exitonclick</span>\n\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\">4</span><span class=\"p\">):</span>\n <span class=\"n\">forward</span><span class=\"p\">(</span><span class=\"mi\">50</span><span class=\"p\">)</span>\n <span class=\"n\">left</span><span class=\"p\">(</span><span class=\"mi\">90</span><span class=\"p\">)</span>\n\n<span class=\"n\">exitonclick</span><span class=\"p\">()</span>\n</pre></div>\n </div>\n</div><h3>Přerušovaná čára</h3>\n<p>Funkce <code>penup</code> a <code>pendown</code>\nz modulu <code>turtle</code> řeknou želvě,\naby přestala, resp. začala kreslit.</p>\n<p>Zkus nakreslit přerušovanou čáru.</p>\n<p><img src=\"/2018/pyladies-ostrava-podzim/intro/turtle/static/turtle-dashed.png\" alt=\"Želva a přerušovaná čára\"></p>\n<div class=\"solution\" id=\"solution-6\">\n <h3>Řešení</h3>\n <div class=\"solution-cover\">\n <a href=\"/2018/pyladies-ostrava-podzim/intro/turtle/index/solutions/6/\"><span class=\"link-text\">Ukázat řešení</span></a>\n </div>\n <div class=\"solution-body\" aria-hidden=\"true\">\n <div class=\"highlight\"><pre><span></span><span class=\"kn\">from</span> <span class=\"nn\">turtle</span> <span class=\"kn\">import</span> <span class=\"n\">forward</span><span class=\"p\">,</span> <span class=\"n\">penup</span><span class=\"p\">,</span> <span class=\"n\">pendown</span><span class=\"p\">,</span> <span class=\"n\">exitonclick</span>\n\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\">10</span><span class=\"p\">):</span>\n <span class=\"n\">forward</span><span class=\"p\">(</span><span class=\"mi\">10</span><span class=\"p\">)</span>\n <span class=\"n\">penup</span><span class=\"p\">()</span>\n <span class=\"n\">forward</span><span class=\"p\">(</span><span class=\"mi\">5</span><span class=\"p\">)</span>\n <span class=\"n\">pendown</span><span class=\"p\">()</span>\n\n<span class=\"n\">exitonclick</span><span class=\"p\">()</span>\n</pre></div>\n </div>\n</div><p>Pak zkus zařídit, aby jednotlivé čárky byly postupně\nvětší a větší.</p>\n<p><img src=\"/2018/pyladies-ostrava-podzim/intro/turtle/static/turtle-dashed2.png\" alt=\"Želva a přerušovaná čára\"></p>\n<div class=\"admonition note\"><p class=\"admonition-title\">Nápověda</p>\n<p>Co přesně dělá příkaz <code>for</code>?\nDá se využít proměnná, kterou nastavuje?</p>\n</div><div class=\"solution\" id=\"solution-7\">\n <h3>Řešení</h3>\n <div class=\"solution-cover\">\n <a href=\"/2018/pyladies-ostrava-podzim/intro/turtle/index/solutions/7/\"><span class=\"link-text\">Ukázat řešení</span></a>\n </div>\n <div class=\"solution-body\" aria-hidden=\"true\">\n <div class=\"highlight\"><pre><span></span><span class=\"kn\">from</span> <span class=\"nn\">turtle</span> <span class=\"kn\">import</span> <span class=\"n\">forward</span><span class=\"p\">,</span> <span class=\"n\">penup</span><span class=\"p\">,</span> <span class=\"n\">pendown</span><span class=\"p\">,</span> <span class=\"n\">left</span><span class=\"p\">,</span> <span class=\"n\">exitonclick</span>\n\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\">20</span><span class=\"p\">):</span>\n <span class=\"n\">forward</span><span class=\"p\">(</span><span class=\"n\">i</span><span class=\"p\">)</span>\n <span class=\"n\">penup</span><span class=\"p\">()</span>\n <span class=\"n\">forward</span><span class=\"p\">(</span><span class=\"mi\">5</span><span class=\"p\">)</span>\n <span class=\"n\">pendown</span><span class=\"p\">()</span>\n\n<span class=\"n\">exitonclick</span><span class=\"p\">()</span>\n</pre></div>\n </div>\n</div><h3>Tři čtverce</h3>\n<p>Nakonec nakresli 3 čtverce, každý otočený o 20°.\nTentokrát už víš, jak to dělat chytře: opakuj pomocí příkazu\n<code>for</code>, ne kopírováním kódu.</p>\n<p><img src=\"/2018/pyladies-ostrava-podzim/intro/turtle/static/turtle-squares.png\" alt=\"Tři želví čtverce\"></p>\n<div class=\"solution\" id=\"solution-8\">\n <h3>Řešení</h3>\n <div class=\"solution-cover\">\n <a href=\"/2018/pyladies-ostrava-podzim/intro/turtle/index/solutions/8/\"><span class=\"link-text\">Ukázat řešení</span></a>\n </div>\n <div class=\"solution-body\" aria-hidden=\"true\">\n <div class=\"highlight\"><pre><span></span><span class=\"kn\">from</span> <span class=\"nn\">turtle</span> <span class=\"kn\">import</span> <span class=\"n\">forward</span><span class=\"p\">,</span> <span class=\"n\">left</span><span class=\"p\">,</span> <span class=\"n\">right</span><span class=\"p\">,</span> <span class=\"n\">speed</span><span class=\"p\">,</span> <span class=\"n\">exitonclick</span>\n\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\">3</span><span class=\"p\">):</span>\n <span class=\"k\">for</span> <span class=\"n\">j</span> <span class=\"ow\">in</span> <span class=\"nb\">range</span><span class=\"p\">(</span><span class=\"mi\">4</span><span class=\"p\">):</span>\n <span class=\"n\">forward</span><span class=\"p\">(</span><span class=\"mi\">50</span><span class=\"p\">)</span>\n <span class=\"n\">left</span><span class=\"p\">(</span><span class=\"mi\">90</span><span class=\"p\">)</span>\n <span class=\"n\">left</span><span class=\"p\">(</span><span class=\"mi\">20</span><span class=\"p\">)</span>\n\n<span class=\"n\">exitonclick</span><span class=\"p\">()</span>\n</pre></div>\n </div>\n</div><h2>Úkol navíc</h2>\n<p>Máš-li hotovo, zkus nakreslit schody:</p>\n<p><img src=\"/2018/pyladies-ostrava-podzim/intro/turtle/static/turtle-stairs.png\" alt=\"Želví schody\"></p>\n<p>A máš-li i schody, zkus nakreslit těchto šest (nebo sedm?) šestiúhelníků:</p>\n<p><img src=\"/2018/pyladies-ostrava-podzim/intro/turtle/static/turtle-hexagons.png\" alt=\"Želví plástev\"></p>\n\n\n " } } }