Kazalo[Skrij][Pokaži]
V zadnji vadnici smo se naučili o zankah while in o tem, kako večkrat izvesti blok kode.
V Pythonu imamo druge vrste zank, kot sta "zanka for" in "ugnezdena zanka". Poglejmo, kako se uporabljajo.
Za zanke
Za ponavljanje po elementih zbirke, kot je niz, uporabljamo »zanko for«. Ker je niz zaporedje znakov, je videti kot zbirka. Zato lahko uporabimo zanko for za ponavljanje vsakega znaka v nizu in nato nekaj naredimo z njim.
Tukaj je primer.
Vnesemo »za«, ki mu sledi spremenljivka in nato niz.
for item in 'Python':
Tukaj "postavka" pomeni znake besede Python. V prvi ponovitvi zanke "item" pomeni "P", druga ponovitev pomeni "y" in tako naprej. Izvedimo to
Vidite lahko, da je vsak znak v tem nizu natisnjen v novi vrstici.
Poglejmo še en primer. V Pythonu lahko definiramo sezname z oglatimi oklepaji. Torej naj definiram seznam z oglatimi oklepaji.
for item in ['Shahbaz', 'Aayush', 'Jay']:
print(item)
Zdaj bo navedel tri imena v ločenih vrsticah.
V tej nastavitvi lahko uporabimo tudi seznam številk. Namesto vnašanja vseh številk od 0 do 9 bom za poenostavitev stvari uporabil funkcijo »Razpon«. Poglejmo, kako se to naredi.
for item in range(10):
print(item)
Lahko ga programiramo tudi tako, da se ne začne z 0.
for item in range(5, 10):
Na terminalu bo natisnil številke od 5 do 9.
Funkcija »Range« lahko sprejme tudi korake kot vnos. Če torej zapišemo takole:
for item in range(5, 10, 2):
Natisnil bo 5, 7 in 9, kar pomeni, da gre po vsaki ponovitvi dva koraka naprej.
Vaja
Zdaj je tukaj vaja za vas. Želim, da napišete program za izračun skupne cene vseh artiklov v nakupovalnem vozičku. Recimo, da imamo seznam cen, kot so 10, 20 in 30, želim, da uporabite zanko for za izračun skupnih stroškov vseh artiklov v našem namišljenem nakupovalnem vozičku.
Daj svoje možgane na delo in preveri, ali zmoreš. Brez goljufanja.
Rešitev
Začnete lahko tako, da navedete cene.
prices = [10, 20, 30]
Zdaj dodajte spremenljivko za skupno ceno, ki se bo začela od 0 za prvo ponovitev.
total = 0
Tukaj je naša for zanka.
for price in prices:
total = total + price
// Lahko se poenostavi kot total += price
print(f"Total: {total}")
Ugnezdene zanke
V Pythonu uporaba ugnezdene zanke v bistvu pomeni dodajanje ene zanke znotraj druge zanke in s to tehniko lahko naredimo nekaj neverjetnih stvari. Na primer, enostavno lahko ustvarimo seznam koordinat.
Kot veste, je koordinata kombinacija vrednosti 'x' in 'y'. Recimo 0 in 0. Zdaj pa recimo, da želite ustvariti seznam koordinat, kot je ta. Imamo 0 in 0, potem bomo imeli 0 in 1, nato 0 in 2.
Nato bomo spremenili 'x'. Uporabili bomo 1 za 'x' in še enkrat bomo uporabili te 3 vrednosti za koordinate 'y'.
Te koordinate lahko preprosto ustvarimo z uporabo ugnezdenih zank.
Naj vam pokažem.
for x in range(4):
for y in range(3):
print(f'({x}, {y}')
Preverimo izhod:
Naj natančno razložim, kako se izvaja ta program. V prvi ponovitvi naše zunanje zanke je 'x' 0. Zdaj smo na vrstici 2, tukaj imamo novo zanko, ki ji pravimo notranja zanka. V tej notranji zanki bo v prvi ponovitvi 'y' 0, zato sta 0 in 0 natisnjena na terminalu.
Zdaj se nadzor vrne v vrstico 2 ali našo notranjo zanko. V tej drugi ponovitvi bo 'y' nastavljen na 1, vendar smo še vedno v prvi ponovitvi naše zunanje zanke. Torej je 'x' še vedno 0, zdaj pa se 'y' poveča na 1.
Zato na terminalu vidimo 0 in 1. To se bo nadaljevalo, dokler se ne izvede naša notranja zanka, nato pa bo tolmač ponovno šel v zunanjo zanko in ta proces se nadaljuje, dokler se zunanja zanka ne zaključi.
Izziv
Tukaj je vaja za vas, vendar je ta nekoliko zahtevnejša od vaj, ki ste jih izvajali do sedaj.
Z uporabo ugnezdenih zank napišite kodo za risanje te oblike 'F':
Rešitev
numbers = [5, 2, 5, 2, 2]
for x_count in numbers:
output = ''
//Ponastavili bomo izhodno spremenljivko na prazen niz.
for count in range(x_count):
output += 'x'
print(output)
Obstaja veliko enostavnejši način za izvedbo tega brez uporabe ugnezdenih zank. Prepuščam vam, da ugotovite.
Zaviti
Ali tudi vi čutite, da z vsakim predavanjem narašča vročina?
Vsekakor se tako počutim. Naredil sem veliko preprostejše, da boste razumeli.
Pojasnimo stvari z našim naslednjim predavanjem.
Pustite Odgovori