Studijní materiály
EXTRA Kontakt

Cyklus FOR a WHILE

Cykly jsou v Pythonu konstrukce, které umožňují opakování určitých částí kódu. Dva nejčastěji používané jsou for a while.

Cyklus for

Představ si, že máš hrací kostku. Každá strana kostky má na sobě číslo od jedné do šesti. Teď si představ, že chceš vědět, jaká čísla jsou na kostce. Jak to uděláš? Podíváš na každou stranu kostky a zapíšeš si jednotlivá čísla.

Obrázek nelze načíst.

V Pythonu to děláme podobně s pomocí cyklu for. Říkáme mu, aby postupně prošel seznam čísel a provedl nějakou akci pro každé číslo. Například, když mu řekneme, aby prošel seznam od jedné do šesti, zapíšeme to takhle:

for strana_kostky in range(1, 7, 1):
  print(strana_kostky)

První číslo v závorce určuje počátek, v našem případě začínáme na 1. Druhý prvek definuje do kdy, se cyklus provádí. Pozor, NENÍ to včetně něj, proto jsme museli napsat 7 (poslední uvažované číslo bude tak 6). Třetí číslo nám říká, o kolik máme proměnnou strana_kostky zvětšit. (Pokud chceme přičítat 1, jako v našem případě, můžeme třetí prvek ze závroky vynechat, v Pythonu se totiž jedná o výchozí hodnotu.)

Do proměnné strana_kostky se tak postupně dosadí 1, 2, 3, 4, 5 a 6.

Syntaxe s dvojtečkou a odsazením je stejná jako u podmínek.

Cyklus while

Představ si, že jsi na sportovním hřišti a chceš běžet kolem hřiště tolikrát, dokud neuběhneš minimálně 1000 metrů (hřiště je po obvodu dlouhé 300 metrů). Jak to uděláš? Uběhneš první kolo, podíváš se, jestli si uběhl více než 1000 metrů a pokud ne, poběžíš další kolo. Podíváš se, jestli si dohromady uběhl více než 1000 metrů a pokud ne poběžíš další kolo atd.

Obrázek nelze načíst.

V Pythonu to můžeme udělat pomocí cyklu while. Říkáme mu, aby opakoval určitý úkol, dokud je splněna nějáká podmínka. Například, když mu řekneme, aby opakoval úkol, dokud neuběhneme 1000 metrů, kód může vypadat takhle:

ubehnuto = 0 
while ubehnuto <= 1000: 
  print(ubehnuto) 
  ubehnuto = ubehnuto + 300

Na začátku začínáme s 0 uběhnutými metry. Dokud neuběhneme 1000 metrů, tak se vypíše počet celkem uběhnutých metrů a poté se přičte nově uběhnuté kolo.

Syntaxe až na slovo while je úplně stejná jako u podmínek (if). Dalo by se tedy říct, že while je jako podmínka, jejíž kód se může provést vícekrát.

Rozdíl mezi for a while

Cyklus for nám pomáhá projít všechny prvky v určitém rozmezí a pro každý provést nějakou akci, zatímco cyklus while nám umožňuje opakovat určitý úkol, dokud je splněna zadaná podmínka.