Python - While petlja


Šta je while petlja u Pythonu?

Petlja while u Pythonu koristi se za itieriranje bloka koda sve dok je test izraz (uslov) istinit (true). Obično koristimo ovu petlju kada ne znamo koliko puta prethodno ponovimo iteraciju.


Sintaksa while petlje

while test_expression:
    Tijelo while petlje

U while petlji prvo se provjerava test izraz. Tijelo petlje unosi se samo ako test_expression procjenjuje na True. Nakon jedne iteracije, testni izraz se provjerava ponovno. Ovaj se postupak nastavlja sve dok test_expression ne procijeni na False. U Python-u se tijelo while petlje određuje uvlačenjem. Tijelo započinje uvlačenjem i prva nerazdvojene linija označava kraj. Python bilo koju vrijednost koja nije nula tumači kao tačno (True). None i 0 se tumače kao False.


Primjer: Python while petlja

# Program za dodavanje prirodnog
# brojeva do
# sum = 1+2+3+...+n

# Da biste preuzeli ulaz od korisnika koristimo
# n = int(input("Unesi n: "))

n = 10

# inicijalizirati zbir i brojač
sum = 0
i = 1

while i <= n:
    sum = sum + i
    i = i+1    # brojač ažuriranja

# ispisuje sumu
print("Suma je", sum)

U gornjem programu test izraz će biti True sve dok je naša varijabla brojača i manja ili jednaka n (10 u našem programu). Moramo obavezno povećati vrijednost varijable brojača u tijelu petlje. Ovo je vrlo važno (i uglavnom zaboravljeno). Ako to ne učinite, rezultat će biti beskonačna petlja.



While petlja sa else

Isto kao i kod for petlje, while petlja takođe mogu imati neobavezni else blok. Ostali dio se izvršava ako se stanje u while petlji procijeni na netačno (False). Petlja while se može okončati izjavom break. U takvim slučajevima se drugi dio zanemaruje. Dakle, drugi dio petlje se pokreće ako se ne dogodi prekid i uslov je lažan (False). Evo primjera koji to ilustruje.

'''Primer za ilustraciju
upotreba naredbe else
sa while petljom'''

counter = 0

while counter < 3:
    print("Unutar while petlje")
    counter = counter + 1
else:
    print("Unutar else")

Ovdje koristimo brojač da tri puta ispišemo string unutrašnje petlje. Na četvrtoj iteraciji stanje u while petlji postaje False. Dakle, drugi dio se izvršava.