Introducere în bucle curatate de Python

Bine ați venit la un alt capitol din cursul de învățare Python - Buclele cu cuiburi. O modalitate excelentă de a bucla o buclă, buclele imbricate și-au dovedit valoarea în fiecare limbaj de programare. Astăzi, ne vom concentra în mod special pe Python - tipuri, sintaxă și exemple. Asadar, haideti sa începem.

Bucle cuiburi

Ar fi bine să atingeți pe scurt bazele pe Nested Loops în general, înainte de a continua cu Python în mod special. Dacă există o buclă în corpul altei bucle, aceasta este denumită Buclă cuibărită. Aceasta înseamnă că dorim să executăm codul buclei interne de mai multe ori. Bucla exterioară controlează câte iterații va suferi bucla interioară. Un exemplu de bază de cuib pentru buclă este:

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

Un lucru de menționat aici este că orice tip de buclă poate fi cuibărit în altă buclă. De exemplu, o buclă de timp poate fi cuibată în interiorul unei bucle pentru sau invers.

Bucle cu cuiburi Python

1) Sintagma pentru bucla

Sintaxa de bază a unei cuiburi pentru buclă în Python este:

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

Exemplu

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

ieşire:

Flux de execuție

Să încercăm să înțelegem fluxul de execuție al programului de mai sus. În program, am folosit două variabile de iterație i și j pentru a tipări un model de stele.

Compilatorul începe cu linia 1. Întâlnește o funcție pentru buclă și o gamă. Funcția range din Python produce o serie de numere întregi de la 0 la numărul specificat în argument. Numărul argumentului este exclus din tablou. În cazul nostru, va genera un tablou (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10). Acum, compilatorul știe că trebuie să execute următorul set de declarații de 10 ori.

Când trece la linia 2, întâlnește o alta pentru funcția de buclă și interval. Rețineți că argumentul acestei funcții este o valoare calculată a variabilei noastre de iterație i. Deci, generează dinamic array în funcție de valoarea lui i. Când i = 0, tabloul este gol. Când i = 1, matricea este (0). Când i = 2, tabloul este (0, 1) și așa mai departe.

Deci, numărul de ori executat de linia 3 depinde direct de valoarea lui i. Observați capătul părții = '' în linie 3. Acest lucru este pentru a împiedica Python să imprime o linie de alimentare după fiecare stea. Vrem doar o linie de alimentare la sfârșitul fiecărei iterații a buclei exterioare. Astfel, am imprimat în mod explicit o linie de avans în linia 4 a codului nostru.

Acum, să examinăm îndeaproape fiecare iterație a buclelor noastre cuibărită.

Iterarea buclelor exterioare 1

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

Iterarea buclelor exterioare 2

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

Iterarea buclelor exterioare 3

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

Iterarea buclelor exterioare 4

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

.
.
.

Iterarea buclelor exterioare 10

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

Iterarea buclelor exterioare 11

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

2) Cuibărit în buclă

Sintaxă

Sintaxa pentru cuibărit în timp ce bucla în Python este:

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

Spre deosebire de bucla for, bucla while nu are o secvență iterabilă precompilată. În timp ce bucla continuă să execute codul până când expresia se evaluează la true. Așadar, un dezvoltator trebuie să țină cont întotdeauna pentru a actualiza variabila / expresia iteratoare, altfel bucla va intra în modul de execuție infinită.

Exemplu

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

ieşire:

Flux de execuție

Linia 1 a codului stabilește variabila iterativă a buclei exterioare la valoarea inițială. Următoarea linie este începutul buclei în timp ce este exterior. Are o expresie i <= 5. Această expresie este evaluată pentru valoarea adevărată după fiecare iterație. Execuția intră în buclă numai dacă condiția este adevărată. Imediat ce condiția devine falsă, bucla este încheiată.

Deoarece valoarea inițială a lui I este 1, condiția din linia 2 este adevărată. Deci, compilatorul trece la linia 3 și stabilește variabila j iterativă a buclei noastre interne la 5. Linia 4 are din nou bucla timp cu o expresie care se evaluează la adevărat. Deci, compilatorul execută liniile 5 și 6. Se trece apoi la linia 4 și evaluează starea. Dacă condiția este adevărată, aceasta intră din nou pe liniile 5 și 6. Dacă condiția devine falsă, bucla se încheie și următoarele linii de executat sunt linia 7 și 8. La fel se urmărește și bucla exterioară.

Linia 6 și 7 sunt foarte importante deoarece actualizează variabila noastră iterativă. Fără ele, fluxul de program ar intra în modul de execuție infinită, deoarece expresiile buclelor în timp ce ar rezulta întotdeauna în truthy.

Ar trebui să rup, să continui sau să trec

Ca și în cazul tuturor celorlalte limbaje de programare, Python are conceptul de pauză și continuare. Aceste cuvinte cheie ajută la încheierea oricărei bucle sau la omiterea unei anumite iterații a buclei. Python are, de asemenea, un alt cuvânt cheie - pass. Să aruncăm o privire la acestea.

1) Pauză

Cuvântul cheie break indică compilatorul să sară dintr-o buclă și să-și încheie execuția.

Exemplu

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

ieşire:

Programul de mai sus rupe interiorul pentru buclă dacă valoarea lui I și j sunt egale. Nu execută mai multe iterații ale buclei. Acest lucru poate fi înțeles în continuare cu declarația continuare.

2) Continuați

Cuvântul cheie continuă indică compilatorul să sară iterația curentă a buclei și să continue cu iterația următoare.

Exemplu

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

ieşire:

Observați că același program, dar cu instrucțiunea Continue în loc de pauză, nu încheie execuția buclei. El omite doar iterația curentă.

3) Treceți

Cuvântul cheie de trecere este interesant în Python. Pur și simplu înseamnă să nu faci nimic. Se utilizează atunci când blocul de cod este necesar sintactic, dar nu doriți să fie executată nicio comandă. Pur și simplu acționează ca un locatar.

Exemplu

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('')

ieşire:

Concluzie

Buclele sunt foarte importante din punct de vedere strategic pentru a învăța să îndepliniți o sarcină cu linii minime de cod. Aceasta este doar o introducere de bază pentru bucle. Se recomandă să te joci mai mult, să fii creativ și să explorezi potențialul buclelor în continuare.

Articole recomandate

Acesta este un ghid pentru bucle curatate de Python. Aici discutăm buclele cu cuiburi Python cu sintaxa, exemple, ieșire și flux de execuție. De asemenea, puteți consulta articolul următor pentru a afla mai multe -

  1. Cadre Python
  2. Cum se instalează Python
  3. Ghid pentru bucle în Python
  4. Ce este interfața Java?
  5. Diferite tipuri de bucle cu avantajele sale
  6. Bucle în VBScript cu exemple