Python pro smyčku

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 valje 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

Vývojový diagram pro smyčku v Pythonu

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.

rangeObjekt „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, lena __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 forsmyč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

forSmyčka může mít volitelný elseblok stejně. elseČást je provedena v případě, že položky v sekvenci použity v pro smyčky výfuky.

breakKlíč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 elsea vytiskne Zbývající položky.

Tento for… elsepříkaz lze použít s breakklíčovým slovem ke spuštění elsebloku pouze v případě, že breakklíč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.

Zajímavé články...