V tomto článku se naučíte iterovat přes posloupnost prvků pomocí různých variant smyčky for.
Video: Python for Loop
Co je pro smyčku v Pythonu?
Smyčka for v Pythonu se používá k iteraci přes sekvenci (seznam, n-tice, řetězec) nebo jiné iterovatelné objekty. Iterace přes sekvenci se nazývá traverz.
Syntaxe pro smyčku
pro val v pořadí: Tělo pro
Zde val
je proměnná, která přebírá hodnotu položky uvnitř sekvence při každé iteraci.
Smyčka pokračuje, dokud nedosáhneme poslední položky v pořadí. Tělo smyčky for je odděleno od zbytku kódu pomocí odsazení.
Vývojový diagram pro smyčku

Příklad: Python pro smyčku
# Program to find the sum of all numbers stored in a list # List of numbers numbers = (6, 5, 3, 8, 4, 2, 5, 4, 11) # variable to store the sum sum = 0 # iterate over the list for val in numbers: sum = sum+val print("The sum is", sum)
Když spustíte program, výstup bude:
Součet je 48
Funkce range ()
Můžeme vygenerovat posloupnost čísel pomocí range()
funkce. range(10)
vygeneruje čísla od 0 do 9 (10 čísel).
Můžeme také definovat velikost začátku, zastavení a kroku jako range(start, stop,step_size)
. step_size výchozí hodnota 1, pokud není k dispozici.
range
Objekt „líní“ v tom smyslu, protože negeneruje každé číslo, že „obsahuje“, když jsme ji vytvořit. Nicméně, to není iterátor protože podporuje in
, len
a __getitem__
operace.
Tato funkce neukládá všechny hodnoty do paměti; bylo by to neefektivní. Pamatuje si tedy start, stop, velikost kroku a generuje další číslo na cestách.
K vynucení této funkce k výstupu všech položek můžeme funkci použít list()
.
Následující příklad to objasní.
print(range(10)) print(list(range(10))) print(list(range(2, 8))) print(list(range(2, 20, 3)))
Výstup
rozsah (0, 10) (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) (2, 3, 4, 5, 6, 7) (2, 5, 8, 11, 14 , 17)
range()
Funkci ve for
smyčkách můžeme použít k iteraci posloupnosti čísel. Může být kombinován s len()
funkcí k iteraci sekvence pomocí indexování. Zde je příklad.
# Program to iterate through a list using indexing genre = ('pop', 'rock', 'jazz') # iterate over the list using index for i in range(len(genre)): print("I like", genre(i))
Výstup
Mám rád pop, mám rád rock, mám rád jazz
pro smyčku s else
for
Smyčka může mít volitelný else
blok stejně. else
Část je provedena v případě, že položky v sekvenci použity v pro smyčky výfuky.
break
Klíčové slovo může být použit k zastavení pro smyčku. V takových případech je část else ignorována.
Pokud tedy nedojde k přerušení, spustí se jiná část smyčky for.
Zde je příklad pro ilustraci.
digits = (0, 1, 5) for i in digits: print(i) else: print("No items left.")
Když spustíte program, výstup bude:
0 1 5 Nezbývají žádné položky.
Zde smyčka for vytiskne položky seznamu, dokud se smyčka nevyčerpá. Když se smyčka for vyčerpá, provede blok kódu v else
a vytiskne Zbývající položky.
Tento for… else
příkaz lze použít s break
klíčovým slovem ke spuštění else
bloku pouze v případě, že break
klíčové slovo nebylo provedeno. Vezměme si příklad:
# program to display student's marks from record student_name = 'Soyuj' marks = ('James': 90, 'Jules': 55, 'Arthur': 77) for student in marks: if student == student_name: print(marks(student)) break else: print('No entry with that name found.')
Výstup
Nenalezena žádná položka s tímto jménem.