🐍 🐢

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.

A kde je ta želva?

Želva je převlečená za šipku. Ale dá se odmaskovat:

from turtle import shape

shape('turtle')

Otáčení

Ž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().

Želví program

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:

Čtverec

Nakresli čtverec.

Želví čtverec

Čtverec má čtyři rovné strany a čtyři rohy po 90°.

Řešení

Obdélník

Nakresli obdélník.

Zkus zařídit, aby se po nakreslení „dívala” želva doprava (tak jako na začátku).

Želví obdélník

Řešení

Tři čtverce

Nakresli tři čtverce, každý otočený třeba o 20°.

Tři želví čtverce

Řešení

Jde to líp?

Tolik kódu! Tohle musí jít nějak zjednodušit!

Jde. Pojďme se naučit příkaz for.

Opakování

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?

Řešení

Přepisování proměnných

Zkus popsat, jak pracuje následující program.

soucet = 0

for cislo in 8, 45, 9, 21:
    soucet = soucet + cislo

print(soucet)

Řešení

Čtverec

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í.

Želví čtverec

Řešení

Přerušovaná čára

Funkce penup a pendown z modulu turtle řeknou želvě, aby přestala, resp. začala kreslit.

Zkus nakreslit přerušovanou čáru.

Želva a přerušovaná čára

Řešení

Pak zkus zařídit, aby jednotlivé čárky byly postupně větší a větší.

Želva a přerušovaná čára

Nápověda

Co přesně dělá příkaz for? Dá se využít proměnná, kterou nastavuje?

Řešení

Tři čtverce

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.

Tři želví čtverce

Řešení

Úkol navíc

Máš-li hotovo, zkus nakreslit schody:

Želví schody

A máš-li i schody, zkus nakreslit těchto šest (nebo sedm?) šestiúhelníků:

Želví plástev

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