Stewdent.eu
▾

Cyklus for

Cyklus for prechádza cez prvky postupnosti — zoznam, reťazec alebo rozsah čísel — a pre každý prvok vykoná blok príkazov.

Posledná aktualizácia: 31. januára 2026

★★☆☆☆ Stupeň 2computingprogrammingcyklusforopakovanie3 min čítania

Nahlásiť chybu

Cyklus for je ideálny vtedy, keď chceš niečo urobiť s každým prvkom skupiny — napríklad vypísať každé meno zo zoznamu, spracovať každý znak reťazca, alebo zopakovať kód presne desaťkrát.

Syntax cyklu for

for premenna in postupnost:
    # telo cyklu

premenna v každom opakovaní prevezme hodnotu ďalšieho prvku z postupnost. Cyklus sa skončí, keď sú všetky prvky spracované.

Prechádzanie zoznamom

ovocie = ["jablko", "banán", "čerešňa"]

for druh in ovocie:
    print(druh)

Výstup:

jablko
banán
čerešňa

Funkcia range()

Keď chceš zopakovať kód presne N-krát, použi funkciu range():

for i in range(5):
    print(i)
# Vypíše: 0 1 2 3 4

range(5) vygeneruje čísla 0, 1, 2, 3, 4 — päť čísel, začína od 0.

Poznámka

range() má tri varianty:

  • range(stop) — od 0 do stop-1
  • range(start, stop) — od start do stop-1
  • range(start, stop, krok) — od start do stop-1 s daným krokom
for i in range(1, 6):      # 1, 2, 3, 4, 5
    print(i)

for i in range(0, 20, 5):  # 0, 5, 10, 15
    print(i)

for i in range(10, 0, -2): # 10, 8, 6, 4, 2
    print(i)

Prechádzanie reťazcom

Reťazec je tiež postupnosť — postupnosť znakov:

slovo = "ahoj"

for znak in slovo:
    print(znak)
# Vypíše: a h o j (každý na novom riadku)

Počítanie s indexom — enumerate()

Niekedy potrebuješ nielen hodnotu prvku, ale aj jeho poradové číslo (index):

znamky = [1, 2, 1, 3, 2]

for i, znamka in enumerate(znamky):
    print(f"Predmet {i + 1}: známka {znamka}")

Výstup:

Predmet 1: známka 1
Predmet 2: známka 2
Predmet 3: známka 1
Predmet 4: známka 3
Predmet 5: známka 2
Tip

enumerate() je elegantnejšie ako manuálne počítadlo. Namiesto i = 0; i += 1 dostaneš index automaticky.

Praktický príklad — súčet čísel

cisla = [10, 20, 30, 40, 50]
sucet = 0

for cislo in cisla:
    sucet += cislo

print(f"Súčet: {sucet}")   # Súčet: 150

Kedy for, kedy while?

SituáciaVhodný cyklus
Prechádzam cez zoznam alebo reťazecfor
Opakujem presne N-krátfor s range()
Neviem vopred, koľko opakovaníwhile
Čakám na vstup alebo udalosťwhile
Upozornenie

Nikdy nemeň zoznam, cez ktorý práve prechádzaš cyklom for — môže to spôsobiť nepredvídateľné správanie. Ak potrebuješ odstraňovať prvky, pracuj s kópiou zoznamu.

Cvičné príklady

Čo vypíše tento kód? for i in range(2, 10, 3): print(i)

Zobraziť odpoveď
Vypíše: 2, 5, 8 (každé na novom riadku). range(2, 10, 3) generuje čísla začínajúc od 2, s krokom 3, kým číslo nedosiahne alebo neprekročí 10: 2, 5, 8, ďalší by bol 11 čo je ≥ 10, takže stop.

Napíš cyklus for, ktorý vypíše súčin čísel 1 až 5 (faktoriál 5 = 120).

Zobraziť odpoveď
sucin = 1; for i in range(1, 6): sucin *= i; print(sucin) — premenná sucin sa násobí hodnotami 1, 2, 3, 4, 5, výsledok je 120.