Nadřazené | Řízení výpočtu |
Předcházející | Proměnné a číselné výrazy v Pythonu, Cykly s proměnnými |
Navazující | Cyklus while v Pythonu, Vnořené cykly v Pythonu, Řetězce v Pythonu, Seznamy v Pythonu |
Cykly při programování využíváme pro opakování skupiny příkazů. Opakování označujeme často pojmem iterace.
Cyklus for
využíváme, pokud dopředu víme, kolik opakování bude cyklus mít. V ostatních případech využíváme cyklus while.
Jednoduchý for cyklus
Základní využití cyklu for
je pro prosté opakování sady příkazů. Pomocí for i in range(10)
zopakujeme 10x sadu příkazů. Příkazy, které se mají opakovat, musíme odsadit. Takto tedy vypíšeme desetkrát Ahoj
:
Řídící proměnná
V průběhu cyklu se mění hodnota řídící proměnné (ve výše uvedeném příkladu je to i
). V každém opakování cyklu tak můžeme provést něco trochu jiného v závislosti na aktuální hodnotě této proměnné. Jakých hodnot řídící proměnná nabývá určuje část za in
. Pokud použijeme základní range
, bude se řídící proměnná postupně zvětšovat o jedničku. Tento cyklus například vypíše čísla od 0 do 9:
V rámci cyklu můžeme využívat více proměnných, pouze u řídící proměnné se však hodnota mění automaticky. Uvažme tento příklad:
Řídící proměnnou cyklu je x
, jehož hodnota se tedy bude postupně měnit (od 0 po 9). U proměnné y
se bude hodnota měnit, protože v rámci cyklu máme přiřazovací příkaz do y
. Hodnota proměnné z
zůstane ve všech opakováních stejná, protože z
není řídící proměnná ani do ní v cyklu nic nepřiřazujeme.
Využití range
Při základním použití kombinujeme for cyklus s funkcí range
, která vrací interval čísel a řídící proměnná následně nabývá hodnot z tohoto intervalu.
Pozor: V informatice často počítáme od nuly (nikoliv od jedničky jako normální lidi). Na to narážíme i zde: range(n)
vrací hodnoty od 0
do n-1
.
Pokud funkci range
zadáme dva parametry, tj. voláme range(a, b)
dá nám interval čísel od a
do b-1
. Můžeme zadat i třetí parametr, který udává délku skoku. Příklady:
for x in range(5, 13): print(x, end=" ") # 5 6 7 8 9 10 11 12
for x in range(5, 16, 3): print(x, end=" ") # 5 8 11 14
for x in range(8, 0, -1): print(x, end=" ") # 8 7 6 5 4 3 2 1
For cyklus se dá využít nejen ve spojení s range
, ale i obecněji. Můžeme například použít seznamy:
Ukázky použití for cyklu
Výpis informace o sudosti a lichosti prvních n
čísel:
Výpočítet součtu čísel od 1
do n
:
Výpis informaci o prvních n
mocninách dvojky:

Rozhodovačka
Rychlé procvičování výběrem ze dvou možností.

Cyklus for v Pythonu (lehké)
45 zadání
Typicky zabere: 9 min
Ukázka
Jaký příkaz musíme doplnit v následujícím programu místo XXX, aby program vypsal číslo 6?a = 0
for i in XXX:
a = a + i
print(a)
Jak vypsat jednociferná sudá čísla?Zjednodušte program:print(1)
print(2)
print(4)
print(5)
print(7)
print(8)

Cyklus for v Pythonu (střední)
46 zadání
Typicky zabere: 13 min
Ukázka
Zjednodušte program:print(1)
print(2)
print(3)
print(5)
print(6)
Co vypíše program?a = 0
for i in range(5):
a = a + i
print(a)
Kolik čísel dává range(a, 2*a)
?
Python želva
Naprogramujte želvu, aby kreslila pěkné obrázky. Želva rozumí pokynům jako je „jdi dopředu“ či „zatoč doprava“. Programy tvoříte pomocí jazyka Python 3. Pro rozcvičení můžete použít verzi želví grafiky v grafickém programování.
Zájemci najdou více informací o želví grafice v knížce od jednoho z autorů projektu Umíme programovat.
Opakování
Nyní využijeme opakování (pomocí for cyklu v Pythonu), což nám umožní snadno vykreslit třeba různé geometrické útvary.
Proměnné
Nyní přidáme proměnné, které nám umožní kreslit obrazce různé velikosti či zatáčet o proměnlivý úhel. To se hodí třeba na pěkné spirály.

Programování v Pythonu
Programování přímo v prohlížeči, s automatickým vyhodnocením správnosti programu. Cvičení používá programovací jazyk Python 3.
V tomto cvičení píšete programy, které pracují s textem a čísly. Pokud chcete obrázky, zkuste cvičení Python želva.
Cyklus for v Pythonu
Cyklus for s vnořenou podmínkou
V této sadě jsou příklady, které se řeší pomocí cyklu for s vnořenou podmínkou (if).