Je zanka, ki večkrat izvede neko zaporedje stavkov. Po vsakem krogu spremenljivka zavzame naslednjo vrednost iz seznama. Zanka se ponavlja tolikokrat, dokler spremenljivka ne zavzame vseh vrednosti. Ko zmanjka elementov v seznamu, se zanka zaključi.
|
|
Kaj je zanka for?
Je zanka, ki večkrat izvede neko zaporedje stavkov. Po vsakem krogu spremenljivka zavzame naslednjo vrednost iz seznama. Zanka se ponavlja tolikokrat, dokler spremenljivka ne zavzame vseh vrednosti. Ko zmanjka elementov v seznamu, se zanka zaključi.
|
|
Primerjava z zanko while
Vse, kar naredimo z zanko for, lahko naredimo tudi z zanko while, a z zanko for , je delo s seznami veliko lažje.
|
|
Sintaksa
Zanka for na splošno zgleda takole:
for spremenljivka in interval:
stavek-1
stavek-2
...
statement-N
Spremenljivke ni potrebno prej deklarirati, kot je to nujno potrebno pri zanki while.
S tem, ko jo vstavimo v zanko for jo že deklariramo. Njena začetna vrednost je določena s prvo številko intervala ali s prvim znakom niza oz. prvim elementom seznama.
Uporaba - Primer 1
Zanko for uporabljamo, ko hočemo:
Želimo izpisovati eno po eno črko neke dane besede. Zanko for uporabimo, da se s spremenljivko "znak" sprehodimo preko celotne besede Python in izpišemo črko, pri kateri je trenutno spremenljivka "znak".
Ko program zaženemo se izpise:
Kaj se je zgodilo?
V zanki for smo ustvarili spremenljivko z imenom znak . Ukazali smo ji, da se naj premika po besedi Python od začetka do konca in izpiše (ukaz print ) črko pri kateri se trenutno nahaja.
Začela je pri P , jo izpisala in se premaknila na naslednjo y , jo izpisala ... in tako šla do konca besede Python
Primerjava z zanko while
Programček s prejšnje strani se z zanko while napiše takole:
len(niz) je dolžina niza oz. število znakov, ki sestavljajo niz.
Ko program zaženemo dobimo enak izpis, kot pri zanki for:
V spodnji tabeli je vidna razlika (oz. podobnost) med zankama for in while:
|
Gnezdenje for zank
Zanke for lahko tudi "gnezdimo" oziroma vstavimo eno znotraj druge.
To bomo prikazali na spodnjem primeru:
Želimo narediti programček, ki bo izpisal tablico množenja do 10. Izpisati mora račun in rezultat (produkt). Izpis naj bo takšen
Namig
Potrebujemo 2 spremenljivki, ki bosta tekli od števila 1 do 10.
Ko bo prva zasedla vrednost 1, bo druga pretekla vse od 1 do 10. Nato se prva "prestavi" naprej po intervalu do druge vrednosti (ki je 2) in druga spet preteče vse od 1 do 10. In tako vse dokler obe ne pretečeta vseh števil od 1 do 10.
Za to potrebujemo RANGE. To je interval od kod do kod naj preteče spremenljivka. Paziti je treba, da se v range vpiše (1,11), ker spremenljivka gre do zadnje vrednosti, a je ne zasede. Na ta način poskrbimo, da gre spremenljivka res od 1 do vključno 10.
Rešitev primera 2
for a in range(1,11):
for b in range (1,11):
print (str(a) + ' * ' + str(b) + ' = '+ str (a*b))
Ko spremenljivka a zavzame vrednost 1, se začnejo izvajati stavki znotraj prve zanke for.
Ko smo vstopili v zanko for vidimo, da je znotraj zanke je še ena zanka for s premenljivko b, ki bo zavzemala vrednosti med 1 in 10.
Ko spremenljivka b zavzame prvo vrednost (število 1) se začnejo izvajati stavki v tej (notranji) zanki. In sicer izpis 1 * 1 = 1
Spremenljivka b se premakne naprej in zavzame drugo vrednost (2).
Spet izvedejo stavki znotraj zanke: izpis 1 * 2 = 2 . In tako naprej.
To se ponavlja vse dokler b ne preteče vseh števil med 1 in 11. Nato se zanka zaključi.
Zato se spremenljivka a premakne naprej na naslednjo vrednost (2).
Vstopimo v zanko in se ves postopek z drugo zanko ponovi še enkrat.
Tako je potrebno spremenljivko b 10-krat "sprehoditi" od 1 do 10, spremenljivko a pa le enkrat.
Ko obe spremenljivki pretečeta dana intervala, se program konča.
Vprašanje 1
Katero zanko lahko uporabimo namesto zanke for? Odgovor:
Odgovor je pravilen!
Odgovor je napačen. Poskusi še enkrat.
Vprašanje 2
Ali lahko v zanko for vstavimo še eno zanko for?
Vprašanje 3
Kaj dobimo kot rezultat, ko se izvedejo spodnji stavki? Izberi en možen odgovor.
Odgovor je pravilen.
Odgovor ni pravilen.