Python — Petlje: for i while
1. Šta su petlje?
Petlje nam omogućavaju da ponavljamo određeni deo koda onoliko puta koliko želimo. U Pythonu postoje dve vrste petlji:
- for petlja – kada unapred znamo koliko puta želimo da se neki blok koda ponovi
- while petlja – kada ponavljamo sve dok je neki uslov ispunjen
1. Inicijalizacija promenljive
Pre ulaska u petlju, definiše se kontrolna promenljiva. U Python-u se to radi u samom zaglavlju
for petlje
(na primer promenljiva i).
2. Provera uslova
Uslov određuje da li će se naredbe unutar petlje izvršiti. Ako je uslov true, izvršavaju se naredbe u petlji. Ako je uslov false, izvršavanje petlje se završava.
3. Izvršavanje naredbi
Kada je uslov ispunjen, izvršavaju se naredbe koje se nalaze u telu petlje.
4. Promena vrednosti kontrolne promenljive
Posle svakog prolaska kroz petlju, vrednost kontrolne promenljive se menja (povećava ili smanjuje). Nakon toga se ponovo proverava uslov.
Ovaj proces se ponavlja sve dok uslov ne postane false, kada se program nastavlja dalje nakon petlje.
# Primer for petlje u Python-u
for i in range(1, 6):
print(i)
ije kontrolna promenljivarange(1, 6)zadaje opseg vrednosti od 1 do 5- petlja se izvršava 5 puta
- kada više nema vrednosti u opsegu, uslov postaje false i petlja se završava
2. For petlja
For se najčešće koristi kada želimo da prođemo kroz neki niz brojeva ili kolekciju.
for i in range(5):
print("Ovo je ponavljanje broj:", i)
Objašnjenje:
range(5) generiše brojeve 0, 1, 2, 3, 4 → ukupno 5 ponavljanja.
Na slici 2 prikazan je konkretan primer rada for petlje. Cilj algoritma je da se određene naredbe izvrše n puta, koristeći kontrolnu promenljivu
i.
Tekst zadatka:
Napisati Python program koji ispisuje brojeve od 0 do n-1, gde je
n unapred zadato.
Objašnjenje algoritma (slika 2):
- Kontrolna promenljiva
ise na početku postavlja na 0 (i = 0) - Proverava se uslov
i < n - Ako je uslov true, izvršavaju se naredbe u telu petlje
- Nakon toga se vrednost promenljive
iuvećava za 1 (i++) - Proces se ponavlja sve dok uslov
i < nne postane false
# Rešenje u Python-u
n = 5
for i in range(n):
print(i)
i = 0odgovara početnoj inicijalizaciji sa slikei < nje ugrađeno u funkcijurange(n)- uvećavanje
i++Python automatski obavlja u svakoj iteraciji - petlja se izvršava tačno n puta
for petlja i funkcija range()
U ovom primeru videćemo kako funkcija range() može da se koristi
sa tri argumenta u kombinaciji sa for petljom.
Primer koda
for broj in range(2, 10, 2):
print(f"{broj} ")
Objašnjenje koda
Funkcija range() u ovom primeru ima tri argumenta:
2– početna vrednost (od kog broja krećemo)10– krajnja vrednost (ovaj broj se ne uključuje)2– korak (za koliko se broj uvećava u svakoj iteraciji)
To znači da će petlja prolaziti kroz sledeće vrednosti promenljive
broj:
2, 4, 6, 8
U svakoj iteraciji, trenutna vrednost promenljive broj se ispisuje
pomoću funkcije print().
Primer izlaza
2 4 6 8
Šta smo naučili?
- for petlja omogućava prolazak kroz niz vrednosti
range(početak, kraj, korak)daje potpunu kontrolu nad brojevima- Ovakav oblik je koristan za prolazak kroz parne brojeve
Ovaj način pisanja koda je čest u zadacima sa brojevima, filtriranjem vrednosti i optimizacijom petlji.
Mini Python igrica — Popuni kod (for petlja)
Vežbaj for petlju popunjavanjem praznih delova koda. Zamisli tok izvršavanja pomoću dijagrama sa slike 2 (inicijalizacija → uslov → naredbe → uvećanje).
Igrica 1: Ispis brojeva od 0 do 4
Dopuni range tako da se ispisuju brojevi od 0 do 4:
for i in ________:
print(i)
Igrica 2: Ispis brojeva od 1 do 5
Popuni range tako da se brojevi ispisuju od 1 do 5:
for i in __________:
print(i)
Igrica 3: Koliko puta se izvršava petlja?
Dopuni broj tako da se poruka ispiše tačno 3 puta:
for i in range(_____):
print("Python")
For petlja kroz listu
voce = ["jabuka", "banana", "narandža"]
for item in voce:
print("Voće:", item)
U Python-u, for petlja se veoma često koristi za prolazak kroz elemente liste.
U ovom primeru imamo listu voce koja sadrži nazive voća.
voce = ["jabuka", "banana", "narandža"]
for item in voce:
print("Voće:", item)
Linija voce = ["jabuka", "banana", "narandža"] definiše listu sa tri elementa.
U for petlji, promenljiva item redom dobija vrednosti iz liste
voce:
- prvi prolaz:
item = "jabuka" - drugi prolaz:
item = "banana" - treći prolaz:
item = "narandža"
U svakom prolazu petlje izvršava se naredba print, pa će rezultat biti:
Voće: jabuka
Voće: banana
Voće: narandža
Ovakav način iteracije je tipičan za Python i omogućava jednostavan i čitljiv prolazak kroz sve elemente liste, bez potrebe da se koristi indeks.
6) Više praktičnih primera i varijanti
Osnovni primeri sa for petljom su dobar početak, ali je za bolje razumevanje
važno videti kako se petlje koriste u različitim situacijama.
U nastavku su dva veoma česta i praktična primera.
Primer 1: For petlja kroz string
U Python-u, string se može posmatrati kao niz karaktera.
Zbog toga for petlja može da prolazi kroz svaki karakter u stringu.
tekst = "Python"
for slovo in tekst:
print(slovo)
Promenljiva slovo redom dobija vrednosti svakog karaktera iz stringa
"Python".
U svakom prolazu petlje ispisuje se jedno slovo.
Rezultat izvršavanja programa biće:
P
y
t
h
o
n
Ovakav način iteracije je koristan kada želimo da analiziramo tekst, prebrojavamo slova ili proveravamo da li se neki karakter pojavljuje u stringu.
Primer 2: For petlja kroz listu brojeva sa uslovima
Često je potrebno da obradimo samo određene elemente liste.
U tom slučaju for petlju možemo kombinovati sa if uslovom.
U sledećem primeru prolazimo kroz listu brojeva i ispisujemo samo parne brojeve.
brojevi = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
for broj in brojevi:
if broj % 2 == 0:
print("Paran broj:", broj)
Promenljiva broj redom uzima vrednosti iz liste brojevi.
Uslov broj % 2 == 0 proverava da li je broj paran.
Ako jeste, broj se ispisuje.
Rezultat izvršavanja programa biće:
Paran broj: 2
Paran broj: 4
Paran broj: 6
Paran broj: 8
Paran broj: 10
Ovaj pristup je veoma čest u praksi jer omogućava filtriranje podataka tokom prolaska kroz listu, bez potrebe za dodatnim strukturama podataka.
3. While petlja
While petlja se koristi kada želimo da se određeni deo koda ponavlja
sve dok je neki uslov ispunjen (True).
Za razliku od for petlje, kod while petlje
unapred ne moramo znati koliko puta će se petlja izvršiti.
For petlja se najčešće koristi kada prolazimo kroz elemente neke kolekcije (lista, string, opseg brojeva), dok je while petlja pogodna kada ponavljanje zavisi od promene vrednosti neke promenljive ili spoljašnjeg uslova.
Drugim rečima:
- for – koristi se kada znamo broj ponavljanja ili prolazimo kroz kolekciju
- while – koristi se kada se ponavljanje izvršava dok je uslov tačan
While izvršava kod sve dok je određeni uslov tačan (True).
broj = 1
while broj <= 5:
print("Vrednost:", broj)
broj += 1
U ovom primeru promenljiva broj počinje od 1.
Petlja se izvršava sve dok je uslov broj <= 5 ispunjen.
Nakon svakog prolaza, vrednost promenljive se uvećava za 1.
Važno: uvek vodimo računa da se uslov nekad prekine — inače dobijamo beskonačnu petlju!
Kako funkcioniše while petlja – objašnjenje dijagrama
Dijagram iznad prikazuje tok izvršavanja while petlje.
Petlja se uvek zasniva na proveri uslova i ponavljanju
naredbi dok je taj uslov ispunjen.
Redosled izvršavanja je sledeći:
- Prvo se proverava uslov.
- Ako je uslov True, izvršavaju se naredbe unutar petlje.
- Nakon izvršenja naredbi, program se vraća nazad na proveru uslova.
- Kada uslov postane False, petlja se prekida i program nastavlja dalje.
Zbog toga je veoma važno da se unutar while petlje
neka promenljiva menja, kako bi uslov u nekom trenutku postao netačan.
U suprotnom, dolazi do beskonačne petlje.
Primer koji odgovara dijagramu
U sledećem primeru koristimo while petlju da ispišemo brojeve od 1 do 5.
Primer direktno prati logiku prikazanu na dijagramu.
broj = 1
while broj <= 5:
print("Vrednost:", broj)
broj += 1
Objašnjenje:
- Uslov je
broj <= 5 - Dok je uslov tačan, izvršava se blok naredbi
- Nakon svakog prolaza, vrednost promenljive
brojse uvećava - Kada
brojpostane veći od 5, uslov postaje False i petlja se završava
Ovaj dijagram i primer zajedno jasno pokazuju zašto se while petlja
koristi kada broj ponavljanja nije unapred poznat, već zavisi od ispunjenosti uslova.
4. Beskonačna while petlja
Beskonačna petlja je petlja koja nema prirodan kraj i izvršava se neprekidno, sve dok se program ručno ne prekine ili dok se unutar petlje ne izvrši naredba koja je prekida.
Kod while petlje do beskonačne petlje dolazi kada je uslov
uvek tačan ili kada se vrednosti koje utiču na uslov nikada ne menjaju.
Iako zvuči kao greška, beskonačne petlje imaju svoju svrhu i koriste se u specifičnim situacijama, kao što su:
- programi koji stalno čekaju korisnički unos
- serverske aplikacije
- igre i interaktivni programi
- rad sa senzorima ili uređajima u realnom vremenu
Primer beskonačne while petlje
while True:
print("Ova petlja će raditi zauvek (prekini ručno!)")
U ovom primeru uslov petlje je True, što znači da je on
uvek ispunjen.
Zbog toga se telo petlje izvršava beskonačno i program nikada sam ne izlazi
iz petlje.
Ovakav program možeš prekinuti ručno, na primer pritiskom na Ctrl + C u terminalu.
Važno je naglasiti da se beskonačne petlje koriste samo kada su namerno potrebne. U suprotnom, one su najčešća greška početnika i mogu dovesti do zamrzavanja programa ili prevelikog opterećenja procesora.
5. Kombinovanje petlji i if uslova – primer
Zadatak
Napisati program koji prolazi kroz brojeve od 1 do 10 i za svaki broj ispisuje da li je paran ili neparan.
Rešenje
for i in range(1, 11):
if i % 2 == 0:
print(i, "je paran broj")
else:
print(i, "je neparan broj")
Objašnjenje rešenja
for petlja prolazi kroz brojeve od 1 do 10.
U svakom prolazu, promenljiva i dobija sledeću vrednost iz tog opsega.
Uslov i % 2 == 0 proverava da li je broj paran.
Ako je uslov ispunjen, izvršava se prva grana if naredbe,
u suprotnom se izvršava else grana.
Ovakva kombinacija petlji i uslova veoma je česta u praksi, jer omogućava donošenje odluka tokom prolaska kroz niz podataka.
6. Praktičan primer: brojanje unazad pomoću while petlje
Zadatak
Napisati program koji od korisnika traži da unese ceo broj, a zatim ispisuje brojeve od tog broja do nule, brojeći unazad. Na kraju ispisati poruku da je odbrojavanje završeno.
Rešenje
n = int(input("Unesi broj: "))
while n > 0:
print(n)
n -= 1
print("Kraj odbrojavanja!")
Objašnjenje rešenja
Program najpre traži od korisnika unos broja i čuva ga u promenljivoj n.
while petlja se izvršava sve dok je vrednost promenljive n
veća od nule.
U svakom prolazu petlje, trenutna vrednost se ispisuje, a zatim se
smanjuje za 1.
Kada n postane jednako nuli, uslov petlje više nije ispunjen,
petlja se prekida i ispisuje se završna poruka.
Ovaj primer pokazuje tipičnu upotrebu while petlje,
kada broj ponavljanja zavisi od promene vrednosti promenljive.
Break i Continue – kontrola toka petlje
Naredbe break i continue koriste se za
kontrolu toka izvršavanja petlji (for i while).
One omogućavaju da promenimo uobičajeni tok petlje u određenim situacijama.
Naredba break
Naredba break se koristi kada želimo da potpuno prekinemo petlju,
bez obzira na to da li je njen uslov još uvek ispunjen.
Nakon izvršenja break naredbe, program nastavlja izvršavanje
sa prvom naredbom posle petlje.
Primer: break u beskonačnoj while petlji
while True:
unos = input("Unesi 'exit' za izlaz: ")
if unos == "exit":
break
print("Uneto:", unos)
Ovaj primer koristi beskonačnu while petlju koja stalno čeka
korisnički unos.
Kada korisnik unese reč exit, izvršava se break
i petlja se prekida.
Ovakav obrazac se često koristi u interaktivnim programima i menijima.
Naredba continue
Naredba continue ne prekida petlju, već preskače trenutni prolaz
i odmah prelazi na sledeću iteraciju petlje.
Kod koji se nalazi ispod continue u telu petlje se neće izvršiti.
Primer: continue u while petlji
broj = 0
while broj < 10:
broj += 1
if broj == 5:
continue
print("Broj:", broj)
Kada promenljiva broj dobije vrednost 5, izvršava se
continue, pa se ispis tog broja preskače.
Svi ostali brojevi se normalno ispisuju.
Kombinovanje break i continue u for petlji
Primer
for i in range(1, 11):
if i == 3:
continue
if i == 8:
break
print(i)
U ovom primeru:
- kada je
i == 3, broj se preskače pomoćucontinue - kada je
i == 8, petlja se prekida pomoćubreak
Rezultat izvršavanja biće ispis brojeva:
1, 2, 4, 5, 6, 7
Kada koristiti break i continue?
- break – kada želimo da ranije završimo petlju (npr. pronašli smo traženi element)
- continue – kada želimo da preskočimo određene slučajeve, ali nastavimo petlju
Pravilna upotreba ovih naredbi čini kod čitljivijim i efikasnijim, ali njihovu upotrebu ne treba preterivati kako se ne bi narušila logika programa.
Zadaci za vežbu: break i continue
U sledećim zadacima vežbaš upotrebu naredbi break i
continue u for i while petljama.
Pokušaj da rešiš zadatke samostalno pre nego što pogledaš rešenja
ili sledeću lekciju.
Zadatak 1: Prekid petlje
Napisati program koji ispisuje brojeve od 1 naviše. Kada se ispiše broj 7, petlju treba prekinuti.
Napomena: koristiti break naredbu.
Zadatak 2: Preskakanje određenog broja
Napisati program koji prolazi kroz brojeve od 1 do 15 i ispisuje sve brojeve osim broja 10.
Napomena: koristiti continue naredbu.
Zadatak 3: Unos sa prekidom
Napisati program koji stalno traži od korisnika unos teksta.
Ako korisnik unese reč kraj, program treba da se zaustavi.
Napomena: koristiti beskonačnu while petlju i break.
Zadatak 4: Samo parni brojevi
Napisati program koji prolazi kroz brojeve od 1 do 20 i ispisuje samo parne brojeve.
Napomena: koristiti continue da se preskoče neparni brojevi.
Zadatak 5: Pronalazak broja
Napisati program koji prolazi kroz listu brojeva:
[3, 7, 2, 9, 5, 1].
Kada se pronađe broj 9, petlju treba prekinuti.
Napomena: koristiti for petlju i break.
Zadatak 6 (izazov): Kombinovanje break i continue
Napisati program koji prolazi kroz brojeve od 1 do 20. Preskočiti brojeve koji su deljivi sa 3, a petlju prekinuti kada se naiđe na broj 17.
Ovaj zadatak zahteva kombinovanje continue i break
u istoj petlji.
Savet: prvo proveri uslov za break, zatim za continue.
Skriveni mini kviz — Petlje, break i continue
Klikni da proveriš da li razumeš kako rade for, while,
break i continue u Python-u.
Otvori kviz
Mini kviz: Šta je ispravno?
1. Šta će se desiti sa sledećim kodom?
i = 0
while i < 5:
print(i)
2. Koja je uloga naredbe break?
3. Šta radi continue u petlji?
4. Šta će biti ispisano?
for i in range(1, 6):
if i == 3:
continue
print(i)
5. Kada se najčešće koristi beskonačna while petlja?
Dodatni zadaci sa primerima iz petlji
Da bi dodatno vežbao koncepte petlji (for, while, break, continue), preporučujemo da pogledaš i rešiš zadatke sa sledeće stranice:
Iako su zadaci napisani za C i C++, mnogi od njih koriste iste principе petlji kao i u Python-u:
- Ispisivanje nizova brojeva, parnih i neparnih brojeva
- Sabiranje brojeva u opsegu
- Konverzije jedinica (npr. Celzijus → Farenhajt)
- Rad sa uslovima unutar petlji
- Manipulacija brojevima i proračuni u petljama
Pokušaj da svaki zadatak prvo rešiš u Python-u koristeći koncepte koje si naučio u ovoj lekciji, a zatim uporedi svoje rešenje sa načinom na koji se problem piše u C/C++. Ovo je odličan način da ojačaš svoje razumevanje petlji i logike.
Neki od zadataka na stranici uključuju:
- Ispis parnih brojeva u opsegu od -55 do 55
- Ispis prvih 100 neparnih brojeva u tabli
- Sabiranje parnih brojeva između 10 i 50
- Izračunavanje proseka ocena
- Uklanjanje nula sa desne strane broja
Klikni na link gore da pređeš na stranicu sa zadacima i rešenjima!
Mini-izazovi: Petlje u praksi (Python)
U nastavku su mini-izazovi zasnovani na zadacima sa stranice
petlje_u_c_cpp_primeri.
Iako su originalno pisani za C/C++, pokušaj da ih rešiš u Python-u
koristeći znanje o for, while, break i continue.
Mini-izazov 1: Parni brojevi u opsegu
Zadatak: Ispiši sve parne brojeve u opsegu od -10 do 10.
□ Inspiracija: parni brojevi u opsegu
for i in range(-10, 11):
if i % 2 != 0:
continue
print(i)
Mini-izazov 2: Sabiranje brojeva u intervalu
Zadatak: Izračunaj zbir svih brojeva od 1 do 100.
□ Inspiracija: sabiranje brojeva u petlji
zbir = 0
for i in range(1, 101):
zbir += i
print("Zbir je:", zbir)
Mini-izazov 3: Prosek unetih brojeva
Zadatak: Korisnik unosi brojeve dok ne unese 0. Nakon toga ispisati njihov prosek.
□ Inspiracija: računanje proseka
suma = 0
brojac = 0
while True:
broj = int(input("Unesi broj (0 za kraj): "))
if broj == 0:
break
suma += broj
brojac += 1
if brojac > 0:
print("Prosek je:", suma / brojac)
else:
print("Nije unet nijedan broj.")
Mini-izazov 4: Odbrojavanje unazad
Zadatak: Ispiši brojeve od 10 do 1, a zatim poruku „Start!“
□ Inspiracija: brojanje unazad
for i in range(10, 0, -1):
print(i)
print("Start!")
Mini-izazov 5 (izazov): Pronađi prvi broj deljiv sa 7
Zadatak: Pronađi prvi broj između 1 i 100 koji je deljiv sa 7 i prekini petlju.
□ Inspiracija: korišćenje break u petlji
for i in range(1, 101):
if i % 7 == 0:
print("Prvi broj deljiv sa 7 je:", i)
break
□ Savet za učenje:
Pokušaj da svaki zadatak prvo rešiš samostalno,
a zatim uporedi svoje Python rešenje sa logikom zadatka
na C/C++ stranici.
Cilj je razumevanje algoritma, ne samo sintakse.
7. Šta si naučio?
- Šta su petlje i zašto se koriste u programiranju
- Kako radi for petlja i kada je najpogodnije koristiti je
- Kako se prolazi kroz:
- liste
- stringove
- opsege brojeva
- Kako radi while petlja i ponavljanje koda na osnovu uslova
- Razliku između for i while petlje
- Kako nastaje beskonačna while petlja i kada se ona namerno koristi
- Kako da bezbedno prekineš petlju pomoću break naredbe
- Kako da preskočiš deo petlje pomoću continue naredbe
- Kombinovanje petlji sa if uslovima
- Rešavanje praktičnih problema pomoću petlji
- Uobičajene greške kod petlji i kako da ih prepoznaš
- Proveru znanja kroz zadatke za vežbu i mini kviz
Ako razumeš sve stavke iz ove lekcije, imaš čvrstu osnovu za rad sa iteracijama i algoritmima u Python-u. U sledećim lekcijama ćeš ove koncepte koristiti još češće.