Přejít na téma:
Cyklus for v Pythonu
Na cvičení:
Python želva
Zobrazit na celou obrazovku
Sdílet Zobrazit shrnutí tématu
Cyklus for 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 při průchodu předem danou posloupností hodnot, například pokud chceme provést známý počet opakování. Pokud počet opakávání řídí podmínka, potřebujeme 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 10× sadu příkazů. Příkazy, které se mají opakovat, musíme odsadit. Takto tedy vypíšeme desetkrát Ahoj:

for i in range(10):

    print("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:

for i in range(10):

    print(i)

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:

y = 1

z = 2

for x in range(10):

    y = x + y + z

    print(x, y, z)

Ří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í lidé). 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:

for x in [3, 7, 10]:

    print(x)

Ukázky použití for cyklu

Sudá a lichá

Výpis informace o sudosti a lichosti prvních n čísel:

n = 20

for i in range(1, n+1):

    if i % 2 == 0:

        print(i, "je sudé")

    else:

        print(i, "je liché")
Součet řady čísel

Výpočet součtu čísel od 1 do n:

n = 10

s = 0

for i in range(1, n+1):

    s = s + i

print("Součet od 1 do", n, "je", s)
Mocniny dvojky

Výpis informace o prvních n mocninách dvojky:

n = 10

for x in range(1, n+1):

    print("Dvojka umocněna na", x, "je", 2**x)

Materiál k tisku: čtení kódu

Kromě níže uvedených interaktivních cvičení je k dispozici také materiál k tisku (cvičení na rozlišování mezi podobnými kódy, u kterého se hodí dělat si poznámky na papír):

NAPIŠTE NÁM

Děkujeme za vaši zprávu, byla úspěšně odeslána.

Napište nám

Nevíte si rady?

Před položením dotazu si prosím projděte návody:

Prosíme, nezasílejte dotazy na prozrazení řešení úloh či vysvětlení postupu. Pokud hlásíte chybu, upřesněte prosím, v čem přesně spočívá a připojte snímek obrazovky.

Čeho se zpráva týká?

Vzkaz Hlášení chyby Obsah Ovládání Přihlášení Licence