Python - For petlja


Što je petlja u Pythonu?

Petlja for se koristi u Python-u za ponavljanje sekvence (list, tuple, string) ili drugih iteraktivih objekata. Iteracija preko sekvence naziva se poništavanje.


Sintaksa for petlje

for val in sequence:
  Tijelo for petlje

Ovdje je val varijabla koja uzima vrijednost stavke unutar sekvence na svakoj iteraciji. Petlja se nastavlja sve dok ne dođemo do posljednje stavke u nizu. Tijelo for petlje odvojeno je od ostatka koda pomoću uvlačenja.


Primjer: Python for petlja

# Program za pronalaženje zbira svih brojeva pohranjenih na listi

# Lista brojeva
numbers = [6, 5, 3, 8, 4, 2, 5, 4, 11]

# Varijabla za spremanje sume
sum = 0

# pregledaj listu
for val in numbers:
  sum = sum+val

print("The sum is", sum)


Funkcija range()

Možemo generisati slijed brojeva pomoću range() funkcije. Raspon (10) generisaće brojeve od 0 do 9 (10 brojeva). Takođe možemo definisati veličinu početka, zaustavljanja i koraka kao opseg (start, stop, step_size). step_size zadana vrijednost je 1 ako nije naveden.

Objekt raspona je u određenom smislu „lijen“ ("lazy"), jer ne stvara svaki broj koji „sadrži“ kada ga stvorimo. Međutim, to nije iterator, jer podržava operacije, len i __getitem__. Ova funkcija ne pohranjuje sve vrijednosti u memoriju, jer bi bilo neefikasno. Tako start, stop, step_size generiše sljedeći broj u pokretu. Da prisilimo ovu funkciju na ispis svih stavki, možemo koristiti funkciju list(). Sljedeći primjer će to pojasniti.

print(range(10))

print(list(range(10)))

print(list(range(2, 8)))

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

Možemo koristiti funkciju range() u for petlji za iteraciju kroz niz brojeva. Može se kombinovati s funkcijom len() za iteriranje kroz niz pomoću indeksiranja. Pogledajmo primjera.

# Programirajte iteraciju kroz listu pomoću indeksiranja
genre = ['pop', 'rock', 'jazz']

#prelistavanje popisa pomoću indeksa
for i in range(len(genre)):
  print("I like", genre[i])


for petlja sa else

Petlja for može imati i opcionalni else blok. Ostali dio se izvršava ako se stavke u nizu koje se koriste u for petlji izvrši. Ključna riječ break može se koristiti za zaustavljanje for petlje. U takvim slučajevima se drugi deo zanemaruje. Dakle, ostali dio for petlje pokreće se ako se ne dogodi prekid. Evo primjera koji to ilustruje.

digits = [0, 1, 5]

for i in digits:
    print(i)
else:
    print("Nema preostalih predmeta.")

Ovdje petlja for ispisuje stavke sa liste dok se petlja ne iscrpi. Kada se petlja for iscrpi, izvršava blok koda u else i ispisuje Nema preostalih predmeta.. Izraz for...else može se koristiti s ključnom riječi break za pokretanje bloka else samo kada ključna riječ break nije izvršena. Pogledajmo primjer:

# program za prikaz ocjena učenika iz zapisa
student_name = 'Miloš'

marks = {'Maja': 90, 'Minja': 55, 'Stefan': 77}

for student in marks:
    if student == student_name:
        print(marks[student])
        break
else:
    print('Nije pronađen nijedan unos s tim imenom.')