🐍 🐢

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 zrovna převlečená za šipku. Ale funkce shape ji umí odmaskovat:

from turtle import shape

shape('turtle')

Modul turtle obsahuje spoustu dalších funkcí, kterými můžeš želvu ovládat. Pojďme se na ně kouknout zblízka.

Otáčení

Želva se umí otáčet (doleva – left a doprave – right) a lézt po papíře (dopředu – forward). Na ocase má připevněný štětec, kterým při pohybu kreslí čáru.

from turtle import forward, left, right

forward(50)
left(60)
forward(50)
right(60)
forward(50)

Zkus chvíli dávat želvě příkazy. Když se ti výsledek nelíbí, můžeš buď zavřít kreslící okno (nebo naimportovat a použít funkci clear()) a zkusit to znovu.

Želví program

Interaktivní mód je skvělý na hraní, ale teď přejdeme zase na soubory.

Vytvoř si v editoru nový soubor. Ulož ho do adresáře pro dnešní lekci pod jménem zelva.py.

Jestli adresář pro dnešní lekci ještě nemáš, vytvoř si ho! Pojmenuj ho třeba 02.

Soubor nepojmenovávej turtle.py – z modulu turtle budeš importovat.

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 – pozor! – na konci programu zavolej funkci exitonclick (naimportovanou z modulu turtle).

Otázka

Co dělá funkce exitonclick, kterou voláš na konci programu?

Až to budeš mít hotové, zkus 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í

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

Jde. Pojďme se naučit jak v Pythonu nějakou činnost opakovat.

Jak opakovat – a neopakovat se

Udělej v editoru nový soubor a ulož ho jako cykly.py. Budeme v něm zkoušet cykly.

První opakovací program, který napíšeme, bude dělat tohle:

  • Stokrát po sobě:
    • Napiš "Nikdy nebudu odsazovat o tři mezery!"

Do jazyka Python se to dá přeložit následovně:

for i in range(100):
    print('Nikdy nebudu odsazovat o tři mezery!')

Na ono for i in range(100) se detailněji podíváme za chvíli, teď to pro nás bude “hlavička”, která říká “opakuj stokrát”.

Podobnou “hlavičku” už jsi viděla: příkaz if. Stejně jako u if tu máme na konci dvojtečku a za hlavičkou následuje odsazený blok – tělo příkazu; to na co se hlavička vztahuje. Tělo příkazu for se opakuje stále dokola.

Výčet

Zkus napsat ještě jeden vzorový program, který v češtině zní:

  • Pro každý pozdrav z výčtu: „Ahoj“, “Hello”, “Hola”, ”Hei”, "SYN":
    • Vypiš pozdrav a za ním vykřičník.

V Pythonu se tento program zapíše jako:

for pozdrav in 'Ahoj', 'Hello', 'Hola', 'Hei', 'SYN':
    print(pozdrav + '!')

Opět je tu hlavička a tělo příkazu. Tentokrát se na hlavičku podívej pozorněji. Pythonní for promenna in sekvence znamená „Pro každé promenna ze sekvence“.

Jméno proměnné si volíš sama. Příkaz for danou proměnnou vždy na začátku bloku nastaví na aktuální hodnotu. Program výše funguje úplně stejně, jako kdybys napsala:

pozdrav = 'Ahoj'
print(pozdrav + '!')

pozdrav = 'Hello'
print(pozdrav + '!')

pozdrav = 'Hola'
print(pozdrav + '!')

pozdrav = 'Hei'
print(pozdrav + '!')

pozdrav = 'SYN'
print(pozdrav + '!')

Range

Vraťme se k for i in range(100). Už víš, že to znamená „Pro každé irange(100)“. Co je ale to range? Když si ho vypíšeš, nevypadne nic vysvětlujícího:

>>> range(100)
range(0, 100)

Je ale použité jako „sekvence“ v for promenna in sekvence. Je to nějaký výčet, nějaká posloupnost hodnot. A teď už umíš vypsat, jaké to jsou!

for i in range(10):   # Doporučuju použít jen 5 místo 100
    print(i)

Program spusť. Jaká čísla se vypíšou?

Řešení

Funkce range(n) vrací sekvenci čísel. Začíná od 0 a čísel v ní je přesně n. (Na samotné n se tedy už nedostane.)

Často se for i in range(n) používá jako “Opakuj n-krát“. V takovém případě nás proměnná i – „počitadlo“ – nezajímá. V programu ji jednoduše nepoužijeme.

Teď by už mělo být jasné, jak funguje původní program:

for i in range(100):
    print('Nikdy nebudu odsazovat o tři mezery!')

Python píše hlášky, jednu za druhou, a u toho si v promněnné i počítá, jak už je daleko.

Čtverec II

A znovu ke kreslení, tentokrát s použitím cyklů!

Nakresli čtverec. To se dělá následovně:

  • Čtyřikrát:
    • Popojdi dopředu (a kresli přitom čáru)
    • Otoč se o 90°

Ž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 si to:

from turtle import forward, penup, pendown, exitonclick

forward(30)
penup()         # od teď želva nekreslí
forward(5)
pendown()       # od teď želva zase kreslí
forward(30)

exitonclick()

Zkus nakreslit dlouhou 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

První čárka je dlouhá 1 jednotku, druhá 2 jednotky, třetí 3, atd.

Dokonce můžeš na začátek dát prázdnou čárku (0 jednotek) a mít tak délky 0, 1, 2, 3, 4, …

Ř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

  • Třikrát:
    • Nakresli čtverec (viz předchozí úloha)
    • Otoč se o 20°

Ř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

Přepisování proměnných

Už víš, že:

print("Tady je pár čísel:")

for cislo in 8, 45, 9, 21:
    print(cislo)

funguje jako:

print("Tady je pár čísel:")

cislo = 8
print(cislo)

cislo = 45
print(cislo)

cislo = 9
print(cislo)

cislo = 21
print(cislo)

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

soucet = 0

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

print(soucet)

Řešení

{
  "data": {
    "sessionMaterial": {
      "id": "session-material:2019/brno-jaro-2019-pondeli:cycles: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 zrovna p&#x159;evle&#x10D;en&#xE1; za &#x161;ipku.\nAle funkce <code>shape</code> ji um&#xED; 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><p>Modul <code>turtle</code> obsahuje spoustu dal&#x161;&#xED;ch funkc&#xED;, kter&#xFD;mi m&#x16F;&#x17E;e&#x161; &#x17E;elvu ovl&#xE1;dat.\nPoj&#x10F;me se na n&#x11B; kouknout zbl&#xED;zka.</p>\n<h2>Ot&#xE1;&#x10D;en&#xED;</h2>\n<p>&#x17D;elva se um&#xED; ot&#xE1;&#x10D;et (doleva &#x2013; <code>left</code> a doprave &#x2013; <code>right</code>) a l&#xE9;zt po pap&#xED;&#x159;e\n(dop&#x159;edu &#x2013; <code>forward</code>).\nNa ocase m&#xE1; p&#x159;ipevn&#x11B;n&#xFD; &#x161;t&#x11B;tec, kter&#xFD;m p&#x159;i pohybu 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\">forward</span><span class=\"p\">,</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 v&#xFD;sledek nel&#xED;b&#xED;, m&#x16F;&#x17E;e&#x161; bu&#x10F; zav&#x159;&#xED;t kresl&#xED;c&#xED; okno\n(nebo naimportovat a pou&#x17E;&#xED;t funkci <code>clear()</code>) a zkusit to znovu.</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 v&#xA0;editoru nov&#xFD; soubor.\nUlo&#x17E; ho do adres&#xE1;&#x159;e pro dne&#x161;n&#xED; lekci pod jm&#xE9;nem <code>zelva.py</code>.</p>\n<div class=\"admonition note\"><p>Jestli adres&#xE1;&#x159; pro dne&#x161;n&#xED; lekci je&#x161;t&#x11B; nem&#xE1;&#x161;, vytvo&#x159; si ho!\nPojmenuj ho t&#x159;eba <code>02</code>.</p>\n</div><div class=\"admonition warning\"><p>Soubor nepojmenov&#xE1;vej <code>turtle.py</code> &#x2013; z&#xA0;modulu <code>turtle</code> bude&#x161; importovat.</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 &#x2013; pozor! &#x2013; na konci programu zavolej funkci <code>exitonclick</code>\n(naimportovanou z&#xA0;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>, kterou vol&#xE1;&#x161; na konci programu?</p>\n</div><p>A&#x17E; to bude&#x161; m&#xED;t hotov&#xE9;, zkus za&#x10D;&#xED;t kreslit obr&#xE1;zky:</p>\n<h3>&#x10C;tverec</h3>\n<p>Nakresli &#x10D;tverec.</p>\n<p><img src=\"/2019/brno-jaro-2019-pondeli/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=\"/2019/brno-jaro-2019-pondeli/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=\"/2019/brno-jaro-2019-pondeli/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=\"/2019/brno-jaro-2019-pondeli/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=\"/2019/brno-jaro-2019-pondeli/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=\"/2019/brno-jaro-2019-pondeli/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><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 jak v&#xA0;Pythonu n&#x11B;jakou &#x10D;innost opakovat.</p>\n<h2>Jak opakovat &#x2013; a neopakovat <em>se</em></h2>\n<p>Ud&#x11B;lej v&#xA0;editoru nov&#xFD; soubor a ulo&#x17E; ho jako <code>cykly.py</code>.\nBudeme v&#xA0;n&#x11B;m zkou&#x161;et <em>cykly</em>.</p>\n<p>Prvn&#xED; opakovac&#xED; program, kter&#xFD; nap&#xED;&#x161;eme, bude d&#x11B;lat tohle:</p>\n<ul>\n<li>Stokr&#xE1;t po sob&#x11B;:<ul>\n<li>Napi&#x161; &quot;Nikdy nebudu odsazovat o t&#x159;i mezery!&quot;</li>\n</ul>\n</li>\n</ul>\n<p>Do jazyka Python se to d&#xE1; p&#x159;elo&#x17E;it n&#xE1;sledovn&#x11B;:</p>\n<div class=\"highlight\"><pre><span></span><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\">100</span><span class=\"p\">):</span>\n    <span class=\"k\">print</span><span class=\"p\">(</span><span class=\"s1\">&apos;Nikdy nebudu odsazovat o t&#x159;i mezery!&apos;</span><span class=\"p\">)</span>\n</pre></div><p>Na ono <code>for i in range(100)</code> se detailn&#x11B;ji pod&#xED;v&#xE1;me za chv&#xED;li,\nte&#x10F; to pro n&#xE1;s bude &#x201C;hlavi&#x10D;ka&#x201D;, kter&#xE1; &#x159;&#xED;k&#xE1; &#x201C;opakuj stokr&#xE1;t&#x201D;.</p>\n<p>Podobnou &#x201C;hlavi&#x10D;ku&#x201D; u&#x17E; jsi vid&#x11B;la: p&#x159;&#xED;kaz <code>if</code>.\nStejn&#x11B; jako u <code>if</code> tu m&#xE1;me na konci dvojte&#x10D;ku a za hlavi&#x10D;kou n&#xE1;sleduje\nodsazen&#xFD; blok &#x2013; <em>t&#x11B;lo</em> p&#x159;&#xED;kazu; to na co se hlavi&#x10D;ka vztahuje.\nT&#x11B;lo p&#x159;&#xED;kazu <code>for</code> se opakuje st&#xE1;le dokola.</p>\n<h3>V&#xFD;&#x10D;et</h3>\n<p>Zkus napsat je&#x161;t&#x11B; jeden vzorov&#xFD; program, kter&#xFD; v&#xA0;&#x10D;e&#x161;tin&#x11B; zn&#xED;:</p>\n<ul>\n<li>Pro ka&#x17E;d&#xFD; <var>pozdrav</var> z v&#xFD;&#x10D;tu: &#x201E;Ahoj&#x201C;, &#x201C;Hello&#x201D;, &#x201C;Hola&#x201D;, &#x201D;Hei&#x201D;, &quot;SYN&quot;:<ul>\n<li>Vypi&#x161; <var>pozdrav</var> a za n&#xED;m vyk&#x159;i&#x10D;n&#xED;k.</li>\n</ul>\n</li>\n</ul>\n<p>V&#xA0;Pythonu se tento program zap&#xED;&#x161;e jako:</p>\n<div class=\"highlight\"><pre><span></span><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>Op&#x11B;t je tu hlavi&#x10D;ka a t&#x11B;lo p&#x159;&#xED;kazu.\nTentokr&#xE1;t se na hlavi&#x10D;ku pod&#xED;vej pozorn&#x11B;ji.\nPythonn&#xED; <code>for <var>promenna</var> in <var>sekvence</var></code>\nznamen&#xE1; &#x201E;Pro ka&#x17E;d&#xE9; <var>promenna</var> ze <var>sekvence</var>&#x201C;.</p>\n<p>Jm&#xE9;no prom&#x11B;nn&#xE9; si vol&#xED;&#x161; sama.\nP&#x159;&#xED;kaz <code>for</code> danou prom&#x11B;nnou v&#x17E;dy na za&#x10D;&#xE1;tku bloku <em>nastav&#xED;</em> na aktu&#xE1;ln&#xED;\nhodnotu.\nProgram v&#xFD;&#x161;e funguje &#xFA;pln&#x11B; stejn&#x11B;, jako kdybys napsala:</p>\n<div class=\"highlight\"><pre><span></span><span class=\"n\">pozdrav</span> <span class=\"o\">=</span> <span class=\"s1\">&apos;Ahoj&apos;</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\n<span class=\"n\">pozdrav</span> <span class=\"o\">=</span> <span class=\"s1\">&apos;Hello&apos;</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\n<span class=\"n\">pozdrav</span> <span class=\"o\">=</span> <span class=\"s1\">&apos;Hola&apos;</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\n<span class=\"n\">pozdrav</span> <span class=\"o\">=</span> <span class=\"s1\">&apos;Hei&apos;</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\n<span class=\"n\">pozdrav</span> <span class=\"o\">=</span> <span class=\"s1\">&apos;SYN&apos;</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><h3>Range</h3>\n<p>Vra&#x165;me se k <code>for i in range(100)</code>.\nU&#x17E; v&#xED;&#x161;, &#x17E;e to znamen&#xE1; &#x201E;Pro ka&#x17E;d&#xE9; <var>i</var> z&#xA0;<code>range(100)</code>&#x201C;.\nCo je ale to <code>range</code>? Kdy&#x17E; si ho vyp&#xED;&#x161;e&#x161;, nevypadne nic vysv&#x11B;tluj&#xED;c&#xED;ho:</p>\n<div class=\"highlight\"><pre><span></span><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">range</span><span class=\"p\">(</span><span class=\"mi\">100</span><span class=\"p\">)</span>\n<span class=\"go\">range(0, 100)</span>\n</pre></div><p>Je ale pou&#x17E;it&#xE9; jako &#x201E;sekvence&#x201C;\nv&#xA0;<code>for <var>promenna</var> in <var>sekvence</var></code>.\nJe to n&#x11B;jak&#xFD; v&#xFD;&#x10D;et, n&#x11B;jak&#xE1; posloupnost hodnot.\nA te&#x10F; u&#x17E; um&#xED;&#x161; vypsat, jak&#xE9; to jsou!</p>\n<div class=\"highlight\"><pre><span></span><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>   <span class=\"c1\"># Doporu&#x10D;uju pou&#x17E;&#xED;t jen 5 m&#xED;sto 100</span>\n    <span class=\"k\">print</span><span class=\"p\">(</span><span class=\"n\">i</span><span class=\"p\">)</span>\n</pre></div><p>Program spus&#x165;. Jak&#xE1; &#x10D;&#xED;sla se vyp&#xED;&#x161;ou?</p>\n<div class=\"solution\" id=\"solution-3\">\n    <h3>&#x158;e&#x161;en&#xED;</h3>\n    <div class=\"solution-cover\">\n        <a href=\"/2019/brno-jaro-2019-pondeli/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>Vyp&#xED;&#x161;ou se &#x10D;&#xED;sla od 0 do 4!\nProgram funguje sten&#x11B;, jako kdybys napsala:</p>\n<div class=\"highlight\"><pre><span></span><span class=\"n\">i</span> <span class=\"o\">=</span> <span class=\"mi\">0</span>\n<span class=\"k\">print</span><span class=\"p\">(</span><span class=\"n\">i</span><span class=\"p\">)</span>\n<span class=\"n\">i</span> <span class=\"o\">=</span> <span class=\"mi\">1</span>\n<span class=\"k\">print</span><span class=\"p\">(</span><span class=\"n\">i</span><span class=\"p\">)</span>\n<span class=\"n\">i</span> <span class=\"o\">=</span> <span class=\"mi\">2</span>\n<span class=\"k\">print</span><span class=\"p\">(</span><span class=\"n\">i</span><span class=\"p\">)</span>\n<span class=\"n\">i</span> <span class=\"o\">=</span> <span class=\"mi\">3</span>\n<span class=\"k\">print</span><span class=\"p\">(</span><span class=\"n\">i</span><span class=\"p\">)</span>\n<span class=\"n\">i</span> <span class=\"o\">=</span> <span class=\"mi\">4</span>\n<span class=\"k\">print</span><span class=\"p\">(</span><span class=\"n\">i</span><span class=\"p\">)</span>\n</pre></div>\n    </div>\n</div><p>Funkce <code>range(n)</code> vrac&#xED; <em>sekvenci &#x10D;&#xED;sel</em>.\nZa&#x10D;&#xED;n&#xE1; od 0 a &#x10D;&#xED;sel v&#xA0;n&#xED; je p&#x159;esn&#x11B; <var>n</var>.\n(Na samotn&#xE9; <var>n</var> se tedy u&#x17E; nedostane.)</p>\n<p>&#x10C;asto se <code>for i in range(n)</code> pou&#x17E;&#xED;v&#xE1; jako &#x201C;Opakuj <var>n</var>-kr&#xE1;t&#x201C;.\nV&#xA0;takov&#xE9;m p&#x159;&#xED;pad&#x11B; n&#xE1;s prom&#x11B;nn&#xE1; <var>i</var> &#x2013; &#x201E;po&#x10D;itadlo&#x201C; &#x2013; nezaj&#xED;m&#xE1;.\nV programu ji jednodu&#x161;e nepou&#x17E;ijeme.</p>\n<p>Te&#x10F; by u&#x17E; m&#x11B;lo b&#xFD;t jasn&#xE9;, jak funguje p&#x16F;vodn&#xED; program:</p>\n<div class=\"highlight\"><pre><span></span><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\">100</span><span class=\"p\">):</span>\n    <span class=\"k\">print</span><span class=\"p\">(</span><span class=\"s1\">&apos;Nikdy nebudu odsazovat o t&#x159;i mezery!&apos;</span><span class=\"p\">)</span>\n</pre></div><p>Python p&#xED;&#x161;e hl&#xE1;&#x161;ky, jednu za druhou, a u toho si v&#xA0;promn&#x11B;nn&#xE9; <var>i</var>\npo&#x10D;&#xED;t&#xE1;, jak u&#x17E; je daleko.</p>\n<h2>&#x10C;tverec II</h2>\n<p>A znovu ke kreslen&#xED;, tentokr&#xE1;t s pou&#x17E;it&#xED;m cykl&#x16F;!</p>\n<p>Nakresli &#x10D;tverec. To se d&#x11B;l&#xE1; n&#xE1;sledovn&#x11B;:</p>\n<ul>\n<li>&#x10C;ty&#x159;ikr&#xE1;t:<ul>\n<li>Popojdi dop&#x159;edu (a kresli p&#x159;itom &#x10D;&#xE1;ru)</li>\n<li>Oto&#x10D; se o 90&#xB0;</li>\n</ul>\n</li>\n</ul>\n<p><img src=\"/2019/brno-jaro-2019-pondeli/intro/turtle/static/turtle-square.png\" alt=\"&#x17D;elv&#xED; &#x10D;tverec\"></p>\n<div class=\"solution\" id=\"solution-4\">\n    <h3>&#x158;e&#x161;en&#xED;</h3>\n    <div class=\"solution-cover\">\n        <a href=\"/2019/brno-jaro-2019-pondeli/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        <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><h2>P&#x159;eru&#x161;ovan&#xE1; &#x10D;&#xE1;ra</h2>\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.\nZkus si to:</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><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=\"n\">forward</span><span class=\"p\">(</span><span class=\"mi\">30</span><span class=\"p\">)</span>\n<span class=\"n\">penup</span><span class=\"p\">()</span>         <span class=\"c1\"># od te&#x10F; &#x17E;elva nekresl&#xED;</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>       <span class=\"c1\"># od te&#x10F; &#x17E;elva zase kresl&#xED;</span>\n<span class=\"n\">forward</span><span class=\"p\">(</span><span class=\"mi\">30</span><span class=\"p\">)</span>\n\n<span class=\"n\">exitonclick</span><span class=\"p\">()</span>\n</pre></div><p>Zkus nakreslit dlouhou p&#x159;eru&#x161;ovanou &#x10D;&#xE1;ru.</p>\n<p><img src=\"/2019/brno-jaro-2019-pondeli/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-5\">\n    <h3>&#x158;e&#x161;en&#xED;</h3>\n    <div class=\"solution-cover\">\n        <a href=\"/2019/brno-jaro-2019-pondeli/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\">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=\"/2019/brno-jaro-2019-pondeli/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>Prvn&#xED; &#x10D;&#xE1;rka je dlouh&#xE1; 1 jednotku, druh&#xE1; 2 jednotky, t&#x159;et&#xED; 3, atd.</p>\n<p>Dokonce m&#x16F;&#x17E;e&#x161; na za&#x10D;&#xE1;tek d&#xE1;t pr&#xE1;zdnou &#x10D;&#xE1;rku (0 jednotek)\na m&#xED;t tak d&#xE9;lky 0, 1, 2, 3, 4, &#x2026;</p>\n</div><div class=\"solution\" id=\"solution-6\">\n    <h3>&#x158;e&#x161;en&#xED;</h3>\n    <div class=\"solution-cover\">\n        <a href=\"/2019/brno-jaro-2019-pondeli/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\">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=\"/2019/brno-jaro-2019-pondeli/intro/turtle/static/turtle-squares.png\" alt=\"T&#x159;i &#x17E;elv&#xED; &#x10D;tverce\"></p>\n<ul>\n<li>T&#x159;ikr&#xE1;t:<ul>\n<li>Nakresli &#x10D;tverec (viz p&#x159;edchoz&#xED; &#xFA;loha)</li>\n<li>Oto&#x10D; se o 20&#xB0;</li>\n</ul>\n</li>\n</ul>\n<div class=\"solution\" id=\"solution-7\">\n    <h3>&#x158;e&#x161;en&#xED;</h3>\n    <div class=\"solution-cover\">\n        <a href=\"/2019/brno-jaro-2019-pondeli/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\">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=\"/2019/brno-jaro-2019-pondeli/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=\"/2019/brno-jaro-2019-pondeli/intro/turtle/static/turtle-hexagons.png\" alt=\"&#x17D;elv&#xED; pl&#xE1;stev\"></p>\n<h3>P&#x159;episov&#xE1;n&#xED; prom&#x11B;nn&#xFD;ch</h3>\n<p>U&#x17E; v&#xED;&#x161;, &#x17E;e:</p>\n<div class=\"highlight\"><pre><span></span><span class=\"k\">print</span><span class=\"p\">(</span><span class=\"s2\">&quot;Tady je p&#xE1;r &#x10D;&#xED;sel:&quot;</span><span class=\"p\">)</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=\"k\">print</span><span class=\"p\">(</span><span class=\"n\">cislo</span><span class=\"p\">)</span>\n</pre></div><p>funguje jako:</p>\n<div class=\"highlight\"><pre><span></span><span class=\"k\">print</span><span class=\"p\">(</span><span class=\"s2\">&quot;Tady je p&#xE1;r &#x10D;&#xED;sel:&quot;</span><span class=\"p\">)</span>\n\n<span class=\"n\">cislo</span> <span class=\"o\">=</span> <span class=\"mi\">8</span>\n<span class=\"k\">print</span><span class=\"p\">(</span><span class=\"n\">cislo</span><span class=\"p\">)</span>\n\n<span class=\"n\">cislo</span> <span class=\"o\">=</span> <span class=\"mi\">45</span>\n<span class=\"k\">print</span><span class=\"p\">(</span><span class=\"n\">cislo</span><span class=\"p\">)</span>\n\n<span class=\"n\">cislo</span> <span class=\"o\">=</span> <span class=\"mi\">9</span>\n<span class=\"k\">print</span><span class=\"p\">(</span><span class=\"n\">cislo</span><span class=\"p\">)</span>\n\n<span class=\"n\">cislo</span> <span class=\"o\">=</span> <span class=\"mi\">21</span>\n<span class=\"k\">print</span><span class=\"p\">(</span><span class=\"n\">cislo</span><span class=\"p\">)</span>\n</pre></div><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-8\">\n    <h3>&#x158;e&#x161;en&#xED;</h3>\n    <div class=\"solution-cover\">\n        <a href=\"/2019/brno-jaro-2019-pondeli/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=\"n\">soucet</span> <span class=\"o\">=</span> <span class=\"mi\">0</span>\n\n<span class=\"n\">cislo</span> <span class=\"o\">=</span> <span class=\"mi\">8</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=\"n\">cislo</span> <span class=\"o\">=</span> <span class=\"mi\">45</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=\"n\">cislo</span> <span class=\"o\">=</span> <span class=\"mi\">9</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=\"n\">cislo</span> <span class=\"o\">=</span> <span class=\"mi\">21</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><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.\nV&#xFD;sledek ulo&#x17E;&#xED; op&#x11B;t do prom&#x11B;nn&#xE9; <code>soucet</code>.\nNov&#xE1; hodnota <code>soucet</code> 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>\n\n\n        "
    }
  }
}