În limbajul de programare Python există două tipuri de bucle care sunt pentru buclă și buclă while . Folosind aceste bucle, putem crea bucle imbricate în Python. Buclele imbricate înseamnă bucle în interiorul unei bucle. De exemplu, bucla while în bucla for, bucla for în bucla for etc.
salvare video youtube vlc

Bucle imbricate Python
Sintaxa buclelor imbricate Python:
Expresia bucla_exterioară:
Expresia bucla_internă:
Declarație în interiorul buclei_interne
Declarație în interiorul Outer_loop
Exemple de bucle imbricate Python
Exemplul 1: Exemplu de bază de bucle imbricate Python
Python3
x>=> [>1>,>2>]> y>=> [>4>,>5>]> for> i>in> x:> >for> j>in> y:> >print>(i, j)> |
>
>
Ieșire:
1 4 1 5 2 4 2 5>
Python3
x>=> [>1>,>2>]> y>=> [>4>,>5>]> i>=> 0> while> i <>len>(x) :> >j>=> 0> >while> j <>len>(y) :> >print>(x[i] , y[j])> >j>=> j>+> 1> >i>=> i>+> 1> |
>
>
Complexitatea timpului: Pe2)
Spațiu auxiliar: O(1)
Exemplul 2: Imprimarea tabelului de înmulțire folosind Python imbricat pentru bucle
Python3
# Running outer loop from 2 to 3> for> i>in> range>(>2>,>4>):> ># Printing inside the outer loop> ># Running inner loop from 1 to 10> >for> j>in> range>(>1>,>11>):> ># Printing inside the inner loop> >print>(i,>'*'>, j,>'='>, i>*>j)> ># Printing inside the outer loop> >print>()> |
>
>
Ieșire:
2 * 1 = 2 2 * 2 = 4 2 * 3 = 6 2 * 4 = 8 2 * 5 = 10 2 * 6 = 12 2 * 7 = 14 2 * 8 = 16 2 * 9 = 18 2 * 10 = 20 3 * 1 = 3 3 * 2 = 6 3 * 3 = 9 3 * 4 = 12 3 * 5 = 15 3 * 6 = 18 3 * 7 = 21 3 * 8 = 24 3 * 9 = 27 3 * 10 = 30>
Complexitatea timpului: Pe2)
Spațiu auxiliar: O(1)
În exemplul de mai sus, ceea ce facem este să luăm o buclă for externă care rulează de la 2 la 3 pentru tabelul de înmulțire de 2 și 3 și apoi în interiorul acelei bucle luăm o buclă for interioară care va rula de la 1 la 10 în interiorul căreia imprimăm multiplicarea. tabel prin înmulțirea fiecărei valori de iterație a buclei interioare cu repetare valoarea buclei exterioare, așa cum vedem în rezultatul de mai jos.
Exemplul 3: Imprimarea folosind diferite bucle imbricate interioare și exterioare
Python3
șir java la char
# Initialize list1 and list2> # with some strings> list1>=> [>'I am '>,>'You are '>]> list2>=> [>'healthy'>,>'fine'>,>'geek'>]> # Store length of list2 in list2_size> list2_size>=> len>(list2)> # Running outer for loop to> # iterate through a list1.> for> item>in> list1:> > ># Printing outside inner loop> >print>(>'start outer for loop '>)> ># Initialize counter i with 0> >i>=> 0> ># Running inner While loop to> ># iterate through a list2.> >while>(i # Printing inside inner loop print(item, list2[i]) # Incrementing the value of i i = i+1 # Printing outside inner loop print('end for loop ')> |
>
>
java matematică.aleatorie
Ieșire:
start outer for loop I am healthy I am fine I am geek end for loop start outer for loop You are healthy You are fine You are geek end for loop>
Complexitatea timpului: Pe2)
Spațiu auxiliar: O(1)
În acest exemplu, inițializam două liste cu câteva șiruri de caractere. Stocați dimensiunea listei2 în „list2_Size” folosind funcția len() și folosind-o în bucla while ca contor. După aceea, rulați o buclă exterioară pentru iterează peste list1 iar în interiorul acelei bucle rulați o buclă internă while pentru a repeta peste list2 folosind indexarea listei în interiorul căreia tipărim fiecare valoare a listei2 pentru fiecare valoare a listei1.
Utilizarea instrucțiunii break în bucle imbricate
Este un tip de instrucțiune de control al buclei. Într-o buclă, putem folosi declarație de pauză pentru a ieși din buclă. Când folosim o instrucțiune break într-o buclă, omite restul iterației și încheie bucla. hai să-l înțelegem folosind un exemplu.
Cod:
Python3
# Running outer loop from 2 to 3> for> i>in> range>(>2>,>4>):> ># Printing inside the outer loop> ># Running inner loop from 1 to 10> >for> j>in> range>(>1>,>11>):> >if> i>=>=>j:> >break> ># Printing inside the inner loop> >print>(i,>'*'>, j,>'='>, i>*>j)> ># Printing inside the outer loop> >print>()> |
>
>
Ieșire:
2 * 1 = 2 3 * 1 = 3 3 * 2 = 6>
Complexitatea timpului: Pe2)
Spațiu auxiliar: O(1)
Codul de mai sus este același ca în exemplul 2. În acest cod, folosim o instrucțiune break în bucla interioară folosind declarația dacă . În interiorul buclei interioare, dacă „i” devine egal cu „j”, atunci bucla interioară se va termina și nu se va executa restul iterației, după cum putem vedea în tabelul de ieșire din 3, este tipărită până la două iterații deoarece în următoarea iterație „i” devine egal cu „j” și bucla se întrerupe.
Utilizarea instrucțiunii continue în bucle imbricate
O instrucțiune continue este, de asemenea, un tip de instrucțiune de control al buclei. Este exact opusul declarației break. Instrucțiunea continue forțează bucla să sară la următoarea iterație a buclei, în timp ce instrucțiunea break încheie bucla. Să-l înțelegem folosind cod.
Python3
# Running outer loop from 2 to 3> for> i>in> range>(>2>,>4>):> ># Printing inside the outer loop> ># Running inner loop from 1 to 10> >for> j>in> range>(>1>,>11>):> >if> i>=>=>j:> >continue> ># Printing inside the inner loop> >print>(i,>'*'>, j,>'='>, i>*>j)> ># Printing inside the outer loop> >print>()> |
>
>
Ieșire:
2 * 1 = 2 2 * 3 = 6 2 * 4 = 8 2 * 5 = 10 2 * 6 = 12 2 * 7 = 14 2 * 8 = 16 2 * 9 = 18 2 * 10 = 20 3 * 1 = 3 3 * 2 = 6 3 * 4 = 12 3 * 5 = 15 3 * 6 = 18 3 * 7 = 21 3 * 8 = 24 3 * 9 = 27 3 * 10 = 30>
Complexitatea timpului: Pe2)
android.process.acore continuă să se oprească
Spațiu auxiliar: O(1)
În codul de mai sus, în loc să folosim o instrucțiune break, folosim o instrucțiune continue. Aici, când „i” devine egal cu „j” în bucla interioară, omite restul codului din bucla interioară și sare la următoarea iterație, așa cum vedem în ieșire 2 * 2 = 4 și 3 * 3 = 9 este nu este tipărit deoarece în acel moment „i” devine egal cu „j”.
Bucle imbricate cu o singură linie folosind înțelegerea listei
Pentru a converti buclele imbricate cu mai multe linii într-o singură linie, vom folosi înțelegerea listelor în Python . Înțelegerea listei include paranteze formate din expresie, care este executată pentru fiecare element și bucla for pentru a repeta fiecare element din listă.
Sintaxa de înțelegere a listei:
listă nouă = [ expresie (element) pentru element în lista veche dacă condiție ]
Cod:
Python3
# Using list comprehension to make> # nested loop statement in single line.> list1>=> [[j>for> j>in> range>(>3>)]> >for> i>in> range>(>5>)]> # Printing list1> print>(list1)> |
>
>
Ieșire:
[[0, 1, 2], [0, 1, 2], [0, 1, 2], [0, 1, 2], [0, 1, 2]]>
În codul de mai sus, stocăm o listă în interiorul listei utilizând înțelegerea listei în bucla interioară a înțelegerii listei [j pentru j în intervalul (3)] pentru a face o listă [0, 1, 2] pentru fiecare iterație a listei exterioare. buclă pentru i în intervalul (5).
Complexitatea timpului: Pe2) Este mai rapid decât buclele imbricate
Spațiu auxiliar: Pe)