Cyklus for
Cykly a seznamy patří k sobě. Cyklem while byste mohli projít indexy seznamu od 0 až po poslední a přečíst každý prvek:
hry = ["Fotbal", "Tenis", "Golf"]
index = 0
while index < len(hry):
print(hry[index])
index += 1Vypíše:
Fotbal
Tenis
GolfFunguje to, ale o index se musíte starat sami. Procházení všech prvků seznamu je tak časté, že na ně má Python jednodušší cyklus, for (pro):
hry = ["Fotbal", "Tenis", "Golf"]
for hra in hry:
print(hra)Fotbal
Tenis
GolfZápis for hra in hry: čtěte jako „pro každou hru v seznamu hry“; anglické in znamená „v“. V každém průchodu je v proměnné hra další prvek seznamu: nejdřív "Fotbal", pak "Tenis" a nakonec "Golf". Po posledním prvku cyklus skončí. Index ani len() vůbec nepotřebujete, takže se v nich ani nemůžete splést.
Proměnnou hra vytvoří řádek s for sám a její název je na vás: for x in hry: funguje stejně. Dobrým zvykem je pojmenovat ji podle jednoho prvku seznamu: hra ze seznamu hry, jmeno ze seznamu jmena, cena ze seznamu ceny. Kód se pak čte skoro jako věta.
Častou chybou je vypsat v cyklu místo prvku celý seznam:
hry = ["Fotbal", "Tenis", "Golf"]
for hra in hry:
print(hry)['Fotbal', 'Tenis', 'Golf']
['Fotbal', 'Tenis', 'Golf']
['Fotbal', 'Tenis', 'Golf']Cyklus proběhne třikrát, ale pokaždé vypíše celý seznam. Uvnitř cyklu pracujte s prvkem: hra, ne hry.
Stejně jako if a while končí i řádek s for dvojtečkou. Bez ní Python skončí chybou SyntaxError: expected ':'.
Jak psát:
Pokyny
Napište cyklus for, který vypíše každý prvek seznamu spoluhraci na samostatný řádek.
Pod něj napište druhý cyklus, který vypíše spoluhráče i s pořadovým číslem: 1. Ondřej, 2. Tomáš, 3. Honza a 4. Pavel. Před cyklem vytvořte proměnnou cislo s hodnotou 1. V cyklu vypište číslo a jméno pomocí f-řetězce, například f"{cislo}. {spoluhrac}", a potom cislo zvyšte o 1.