For petlja prolazi kroz jednu stavku kolekcije u svakom koraku.
Već poznajete for petlje. Ovde koristite isti mehanizam sa kolekcijama: kolekcija → for petlja → jedna stavka po iteraciji → telo petlje. Python dodeljuje trenutnu stavku promenljivoj petlje, izvršava uvučeno telo i prelazi na sledeću stavku.
names = ["Ana", "Marko", "Jelena"]
for name in names:
print(name)Python uzima "Ana", dodeljuje je promenljivoj name i izvršava print(name). Ponavlja to za "Marko" i "Jelena", pa staje. name je jedna trenutna vrednost, a ne cela lista names. Isti obrazac radi i sa torkom.
Ana
Marko
JelenaPratite petlju: iteracija 1 → color = "red"; iteracija 2 → color = "blue"; iteracija 3 → color = "green"; zatim se petlja završava.
Petlja može i da izgradi rezultat: Sa numbers = [2, 4, 6] i total = 0, svako total += number gradi rezultat: 0 → 2 → 6 → 12. Petlja ne samo da ispisuje stavke; može postepeno da sabira rezultat.
student = {"name": "Ana", "course": "Python", "city": "Novi Sad"}
for key in student:
print(key)Obična petlja for key in student prolazi kroz ključeve rečnika, a ne kroz vrednosti. Koristite student.values() za vrednosti, a student.items() kada su potrebna oba dela.
for value in student.values():
print(value)
for key, value in student.items():
print(key, value)student.values() prolazi kroz vrednosti. student.items() daje parove kao ("name", "Ana"). Python svaki par raspakuje u promenljive key, value, kao kod raspakivanja torke.
tags = {"python", "django", "ai"}
for tag in tags:
print(tag)Svaki element skupa biće posećen, ali ne gradite logiku koja zavisi od „prvog“ elementa. Skup nema indeksiranje po poziciji kao lista ili torka.
scores = {"Ana": 8, "Marko": 6, "Jelena": 10}
total = 0
for name, score in scores.items():
total += score
print(total)
print(len(scores))Počnite sa total = 0. Ana / 8 daje 8; Marko / 6 daje 14; Jelena / 10 daje 24. items() daje svaki par ključ–vrednost, raspakivanje stavlja broj u score, a len(scores) broji tri para.
Izaberite oblik iteracije prema nameri
- Jedna vrednost iz liste ili torkeKoristite
for item in collectionkada želite jednu uređenu stavku u svakom koraku. - Svaki element skupaKoristite
for item in set_nameda posetite svaki element bez oslanjanja na pozicije ili redosled. - Ključevi, vrednosti ili oba dela rečnikaKoristite
for key in dictionaryza ključeve,dictionary.values()za vrednosti idictionary.items()uzkey, valuekada su potrebna oba dela.
Česte početničke greške
- Tumačenje promenljive petlje kao cele kolekcijeU izrazu
for name in namespromenljivanameje jedno trenutno ime, a ne cela lista. - Očekivanje da petlja kroz rečnik daje vrednostiU izrazu
for item in studentpromenljivaitemje ključ. Koristitestudent.values()za vrednosti. - Raspakivanje nečega što nije par
for key, value in student.items()radi zato što je svaka stavka dvodelni par ključ–vrednost. - Oslanjanje na redosled skupaNe gradite logiku oko „prvog“ elementa skupa. Koristite listu ili torku kada su važni pozicija i redosled.
- Zaboravljanje uvlačenjaKod koji pripada petlji mora biti uvučen, inače Python ne zna koja se naredba izvršava za svaku stavku.
