U ovom ćete članku naučiti ponavljati niz elemenata koristeći različite varijacije for petlje.
Video: Python za petlju
Što je for petlja u Pythonu?
Petlja for u Pythonu koristi se za itiriranje kroz niz (popis, skup, niz) ili druge iterabilne objekte. Iteriranje nad nizom naziva se prelazak.
Sintaksa for Loop
za val u slijedu: Tijelo for
Ovdje val
je varijabla koja uzima vrijednost stavke unutar niza na svakoj iteraciji.
Petlja se nastavlja sve dok ne dođemo do posljednje stavke u nizu. Tijelo petlje for odvojeno je od ostatka koda.
Dijagram toka za Loop
Dijagram toka za Loop u PythonuPrimjer: Python za 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)
Kada pokrenete program, izlaz će biti:
Zbroj je 48
Funkcija raspona ()
Slijed brojeva možemo generirati pomoću range()
funkcije. range(10)
generirat će brojeve od 0 do 9 (10 brojeva).
Također možemo definirati veličinu početka, zaustavljanja i koraka kao range(start, stop,step_size)
. zadana veličina step_size na 1 ako nije naveden.
range
Objekt je „lijen” u nekom smislu, jer ne stvaraju svaki broj koji je „sadrži” kad smo ga stvorili. Međutim, to nije iteratora budući da podržava in
, len
te __getitem__
operacije.
Ova funkcija ne pohranjuje sve vrijednosti u memoriju; bilo bi neučinkovito. Tako pamti početak, zaustavljanje, veličinu koraka i generira sljedeći broj u pokretu.
Da bismo prisilili ovu funkciju da izbaci sve stavke, možemo je koristiti list()
.
Sljedeći će primjer to pojasniti.
print(range(10)) print(list(range(10))) print(list(range(2, 8))) print(list(range(2, 20, 3)))
Izlaz
raspon (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()
Funkciju u for
petljama možemo koristiti za itiranje kroz niz brojeva. Može se kombinirati s len()
funkcijom za itiranje kroz niz pomoću indeksiranja. Evo primjera.
# 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))
Izlaz
Volim pop Volim rock Volim jazz
for petlja s else
for
Petlje može imati proizvoljnu else
blok kao izvora. else
Dio je izvršiti ako stavke u nizu koristi u for petlji ispušnih ventila.
break
Ključna riječ se može koristiti da se zaustavi for petlje. U takvim se slučajevima drugi dio zanemaruje.
Dakle, ostali dio for petlje izvodi se ako se ne dogodi prekid.
Evo primjera koji to ilustrira.
digits = (0, 1, 5) for i in digits: print(i) else: print("No items left.")
Kada pokrenete program, izlaz će biti:
0 1 5 Nema preostalih predmeta.
Ovdje petlja for ispisuje stavke s popisa dok se petlja ne iscrpi. Kad se petlja for iscrpi, izvršava blok koda u else
i ispisuje Nema preostalih stavki.
Ova se for… else
izjava može koristiti s break
ključnom riječi za pokretanje else
bloka samo kada break
ključna riječ nije izvršena. Uzmimo primjer:
# 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.')
Izlaz
Nije pronađen nijedan unos s tim imenom.