Uvod v ugnezdene zanke Python

Dobrodošli v drugem poglavju tečaja učenja Python - ugnezdene zanke. Odličen način za zatiranje zanke, ugnezdene zanke so se izkazale za vse v svojem programskem jeziku. Danes se bomo posebej osredotočili na Python - vrste, skladnjo in primere. Torej, začnimo.

Gnezdene zanke

Dobro bi bilo, da se na splošno dotaknete baze Nested Loops, preden nadaljujete posebej s Python-om. Če v telesu druge zanke obstaja zanka, se imenuje kot ugnezdena zanka. To pomeni, da želimo kodo notranje zanke večkrat izvesti. Zunanja zanka nadzoruje, koliko ponovitev bo izvedla notranja zanka. Osnovni primer ugnezdene zanke je:

for (i=0; i<10; i++)
(
for (j=0; j<10; j++)
(
//This code will execute 100 times.
)
//This code will execute 10 times.
)

Tu je treba opozoriti, da se lahko vsaka vrsta zanke ugnezdi znotraj druge zanke. Na primer, zanka za čas lahko gnezdi znotraj zanke za zanko ali obratno.

Python ugnezdene zanke

1) Gnezdi za sintakso zanke

Osnovna sintaksa ugnezdene zanke v Pythonu je:

for (iterating_variable_1) in (sequence_1): #Outer Loop
for (iterating_variable_2) in (iterating_variable_1/sequence_2): #Inner Loop
(code to execute)

Primer

for i in range(11): #line 1
for j in range(i): #line 2
print('*', end='') #line 3
print('') #line 4

Izhod:

Izvedbeni tok

Poskusimo razumeti izvedbeni postopek zgornjega programa. V programu smo za tiskanje vzorca zvezd uporabili dve iteracijski spremenljivki i in j.

Prevajalnik začne z vrstico 1. Naleti na funkcijo zanke in območja. Funkcija obsega v Python-u oddaja nadomestljiv niz celih števil od 0 do številke, določene v argumentu. Številka argumenta je izključena iz matrike. V našem primeru bo ustvaril matriko (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10). Zdaj prevajalnik ve, da mora naslednji niz stavkov izvršiti 10-krat.

Ko se premakne na vrstico 2, naleti na drugo za funkcijo zanke in dometa. Upoštevajte, da je argument te funkcije obsega izračunana vrednost naše iteracijske spremenljivke i. Torej, dinamično ustvarja matriko, odvisno od vrednosti i. Ko je i = 0, je matrika prazna. Ko je i = 1, je matrika (0). Ko je i = 2, je matrika (0, 1) in tako naprej.

Torej, število izvedb vrstice 3 je neposredno odvisno od vrednosti i. Opazite delni konec = '' v 3. vrstici. S tem preprečite, da bi Python natisnil vrstico po vsaki zvezdi. Želimo si samo podajanje črt na koncu vsake ponovitve zunanje zanke. Tako smo izrecno natisnili vrstico vrstice v vrstici 4 naše kode.

Torej, zdaj natančno preučimo vsako ponovitev našega ugnezdenega kroga.

Iteracija zunanje zanke 1

I = 0, j = (), output is a blank line.

Zunanja Iteracija zanke 2

I = 1, j = (0), output = *

Zunanja iteracija 3

I = 2, j = (0, 1), output = **

Zunanja Iteracija zanke 4

I = 3, j = (0, 1, 2), output = ***

.
.
.

Zunanja ponovitev zanke 10

I = 9, j = (0, 1, 2, 3, 4, 5, 6, 7, 8), output = *********

Zunanja iteracija zanke 11

I = 10, j = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9), output = **********

2) Gnezdi, medtem ko je zanka

Sintaksa

Sintaksa gnezdenja med zanko v Pythonu je:

while (expression_1): #Outer loop
(code to execute) #Optional
while (expression_2): #Inner loop
(code to execute)

Za razliko od zanke for, zanka while nima predhodno sestavljenega iterabilnega zaporedja. Čeprav zanka sproži kodo, dokler izraz ne oceni kot resničen. Torej, razvijalec mora vedno imeti v mislih posodobitev iteracijske spremenljivke / izraza, sicer bo zanka vstopila v način neskončnega izvajanja.

Primer

i=1 #line 1
while(i<=5): #line 2
j=5 #line 3
while(j>=i): #line 4
print(j, end=' ') #line 5
j-=1 #line 6
i+=1 #line 7
print() #line 8

Izhod:

Izvedbeni tok

Vrstica 1 kode nastavi iteracijsko spremenljivko zunanje zanke na začetno vrednost. Naslednja vrstica je začetek zunanje, medtem ko zanke. Ima izraz i <= 5. Ta izraz je ocenjen po resnični vrednosti po vsaki ponovitvi. Izvedba vstopi v zanko le, če je pogoj resničen. Takoj, ko postane pogoj napačen, zanka preneha.

Ker je začetna vrednost I enaka, je pogoj v 2. vrstici resničen. Torej se prevajalnik premakne v vrstico 3 in nastavi iteracijsko spremenljivko naše notranje zanke j na 5. V vrstici 4 je ponovno zanka z izrazom, ki je ocenjena kot resnična. Torej, prevajalnik izvede vrstice 5 in 6. Nato se vrne nazaj na vrstico 4 in oceni stanje. Če je pogoj resničen, spet vstopi v vrstico 5 in 6. Če pogoj postane napačen, se zanka prekine in naslednji vrstici, ki ju želite izvesti, sta vrstici 7 in 8. Enako velja za zunanjo zanko.

Vrstico 6 in 7 sta zelo pomembni, ker posodabljata našo iterno spremenljivko. Brez njih bi programski tok prešel v neskončen način izvajanja, saj bi izrazi, medtem ko bi zanki vedno povzročili resničnost.

Ali naj prekinem, nadaljujem ali prehodim

Kot pri skoraj vseh drugih programskih jezikih ima tudi Python koncept prekinitve in nadaljevanja. Te ključne besede pomagajo ukiniti vsako zanko ali preskočiti določeno iteracijo zanke. Python ima tudi drugo ključno besedo - pass. Oglejmo si te.

1) Premor

Ključna beseda break pomeni, da prevajalnik skoči iz zanke in zaključi njegovo izvedbo.

Primer

for i in range(5):
for j in range(5):
if i == j:
break
print(j, end='')
print('')

Izhod:

Zgornji program razbije notranjost za zanko, če sta vrednosti I in j enaki. Nadaljnjih iteracij zanke ne izvede. To je mogoče nadalje razumeti z izjavo o nadaljevanju.

2) Nadaljujte

Ključna beseda nadaljevanje označuje prevajalnik, da preskoči trenutno iteracijo zanke in nadaljuje z naslednjo iteracijo.

Primer

for i in range(5):
for j in range(5):
if i == j:
continue
print(j, end='')
print('')

Izhod:

Opazite, da isti program, vendar z izjavo nadaljevanje namesto preloma, ne zaključi izvedbe zanke. Le preskoči trenutno iteracijo.

3) Prehod

Ključna beseda pass je zanimiva v Pythonu. To preprosto pomeni, da ne storite ničesar. Uporablja se, kadar je kodni blok sintaktično potreben, vendar ne želite, da se kateri koli ukaz izvede. Preprosto deluje kot rezerviralec mesta.

Primer

for i in range(5):
for j in range(5):
if i == j:
#I am not sure what to do when i equals j, so for now I will pass.
pass
print(j, end='')
print('')

Izhod:

Zaključek

Zank je strateško zelo pomembno, da se naučite izvajati nalogo z minimalnimi vrsticami kode. To je le osnovni uvod v zanke. Priporočljivo je, da se igrate več, se ustvarjate in še bolj raziskujete potencial zank.

Priporočeni članki

To je vodič za Python ugnezdene zanke. Tu razpravljamo o ugnezdenih zankah Python s sintakso, primeri, izhodnim in izvedbenim tokom. Če želite izvedeti več, si oglejte tudi naslednji članek -

  1. Okviri Python
  2. Kako namestiti Python
  3. Vodnik po zankah v Pythonu
  4. Kaj je vmesnik Java?
  5. Različne vrste zank z njegovimi prednostmi
  6. Zanke v VBScript s primeri