Python pre Loop

V tomto článku sa naučíte iterovať cez postupnosť prvkov pomocou rôznych variácií cyklu for.

Video: Python for Loop

Čo je slučka v Pythone?

Smyčka for v Pythone sa používa na iteráciu sekvencie (zoznam, n-tica, reťazec) alebo iných opakovateľných objektov. Iterácia sekvencie sa nazýva traverz.

Syntax slučky

 pre val v poradí: Telo pre

Tu valje premenná, ktorá pri každej iterácii preberá hodnotu položky vo vnútri sekvencie.

Smyčka pokračuje, kým sa nedostaneme k poslednej položke v poradí. Telo cyklu for je oddelené od zvyšku kódu pomocou odsadenia.

Vývojový diagram slučky

Vývojový diagram cyklu Loop v Pythone

Príklad: Python pre Loop

 # 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) 

Po spustení programu bude výstup:

 Súčet je 48

Funkcia range ()

Poradie čísel môžeme vygenerovať pomocou range()funkcie. range(10)vygeneruje čísla od 0 do 9 (10 čísel).

Môžeme tiež definovať veľkosť začiatku, zastavenia a kroku ako range(start, stop,step_size). step_size má predvolené nastavenie 1, ak nie je poskytnuté.

rangeObjekt "leniví" v tom zmysle, pretože negeneruje každé číslo, že "obsahuje", keď sme ju vytvoriť. Avšak, to nie je iterátor pretože podporuje in, lena __getitem__operácie.

Táto funkcia neukladá všetky hodnoty do pamäte; bolo by to neefektívne. Pamätá si teda veľkosť štartu, stopu, kroku a generuje ďalšie číslo na cestách.

Na vynútenie tejto funkcie na výstup všetkých položiek môžeme túto funkciu použiť list().

Nasledujúci príklad to objasní.

 print(range(10)) print(list(range(10))) print(list(range(2, 8))) print(list(range(2, 20, 3)))

Výkon

 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()Funkciu v forslučkách môžeme použiť na iteráciu postupnosťou čísel. Môže byť kombinovaný s len()funkciou na iteráciu sekvencie pomocou indexovania. Tu je prí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ýkon

 Mám rád pop, mám rád rock, mám rád jazz

pre slučku s else

forSlučka môže mať voliteľný elseblok rovnako. elseČasť je vykonaná v prípade, že položky v sekvencii použité v pre slučky výfuky.

breakKľúčové slovo môže byť použitý na zastavenie pre slučku. V takýchto prípadoch je iná časť ignorovaná.

Preto sa iná časť cyklu for spustí, ak nedôjde k prerušeniu.

Tu je uvedený príklad na ilustráciu.

 digits = (0, 1, 5) for i in digits: print(i) else: print("No items left.")

Po spustení programu bude výstup:

 0 1 5 Nezostávajú žiadne položky.

Tu slučka for vytlačí položky zoznamu, kým sa slučka nevyčerpá. Keď sa slučka for vyčerpá, vykoná blok kódu v elsea vytlačí Žiadne položky.

Tento for… elsepríkaz je možné použiť s breakkľúčovým slovom na spustenie elsebloku, iba ak breakkľúčové slovo nebolo spustené. Uveďme si prí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ýkon

 Nenašla sa žiadna položka s týmto menom.

Zaujímavé články...