Introduktion till Python Nested Loops

Välkommen till ett annat kapitel i Python-kursen - Nested Loops. Ett fantastiskt sätt att slinga en slinga, kapslade slingor har visat sitt värde i alla programmeringsspråk. Idag kommer vi att fokusera specifikt på Python - typerna, syntaxen och exemplen. Så låt oss komma igång.

Kapslade slingor

Det skulle vara bra att kort beröra basen på Nested Loops i allmänhet innan du fortsätter med Python specifikt. Om en slinga finns i kroppen på en annan slinga, benämns den som Nested Loop. Detta innebär att vi vill köra den inre slingkoden flera gånger. Den yttre slingan styr hur många iterationer den inre slingan kommer att genomgå. Ett grundläggande exempel på en kapslad för slinga är:

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

En sak att notera här är att alla typer av slingor kan kapslas in i en annan slinga. Till exempel kan en stundslinga kapslas in i en för-loop eller vice versa.

Python Nested Loops

1) Häckt för loop-syntax

Den grundläggande syntaxen för en kapslad för slinga i Python är:

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

Exempel

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

Produktion:

Utföringsflöde

Låt oss försöka förstå exekveringsflödet för ovanstående program. I programmet använde vi två iterationsvariabler i och j för att skriva ut ett mönster av stjärnor.

Kompilatorn börjar med rad 1. Den möter en för loop och en avståndsfunktion. Räckviddsfunktionen i Python matar ut en iterabel grupp med heltal från 0 till det nummer som anges i argumentet. Argumentnumret är uteslutet från matrisen. I vårt fall kommer det att generera en matris (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10). Nu vet kompilatorn att den måste utföra nästa uppsättning uttalanden 10 gånger.

När den går till rad 2 möter den en annan för loop- och intervallfunktion. Observera att argumentet till denna intervallfunktion är ett beräknat värde för vår iterationsvariabel i. Så det genererar dynamiskt array beroende på värdet på i. När i = 0 är matrisen tom. När i = 1 är matrisen (0). När i = 2 är matrisen (0, 1) och så vidare.

Så antalet gånger som rad 3 exekveras direkt beror på värdet på i. Lägg märke till delen slut = '' inline 3. Detta för att förhindra att Python skriver ut en radmatning efter varje stjärna. Vi vill bara ha en matning i slutet av varje iteration av den yttre slingan. Således har vi uttryckligen tryckt en radmatning i rad 4 i vår kod.

Så nu, låt oss granska varje iteration av vår kapslade för slinga.

Yttre sling Iteration 1

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

Yttre sling Iteration 2

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

Yttre sling Iteration 3

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

Yttre sling Iteration 4

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

.
.
.

Yttre sling Iteration 10

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

Yttre sling Iteration 11

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

2) Häckt medan slingan

Syntax

Syntaxen för att häcka medan slingan i Python är:

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

Till skillnad från for-loopen har while-loopen inte en förkompilerad iterbar sekvens. Medan loop fortsätter att köra koden tills uttrycket utvärderas till sant. Så en utvecklare måste alltid ha i åtanke att uppdatera den iterating variabel / uttryck, annars kommer öglan att gå in i oändligt exekveringsläge.

Exempel

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

Produktion:

Utföringsflöde

Rad 1 i koden sätter den yttre slingans iterationsvariabel till initialvärde. Nästa rad är början på den yttre medan-slingan. Det har ett uttryck i <= 5. Detta uttryck utvärderas för verkligt värde efter varje iteration. Exekveringen går in i slingan endast om villkoret är sant. Så snart villkoret blir falskt avslutas slingan.

Eftersom det initiala värdet på I är 1 är villkoret i rad 2 sant. Så flyttar kompilatorn till linje 3 och sätter vår inre slingas iterationsvariabel j till 5. Linje 4 har igen en stundslinga med ett uttryck som utvärderas till sant. Så kompilatorn kör rad 5 och 6. Den går sedan tillbaka till rad 4 och utvärderar tillståndet. Om villkoret är sant kommer det igen in i rad 5 och 6. Om villkoret blir falskt avslutas slingan och nästa rader som ska utföras är linje 7 och 8. Samma följs för den yttre slingan.

Rad 6 och 7 är mycket viktiga eftersom de uppdaterar vår iterating-variabel. Utan dem skulle programflödet gå in i oändligt exekveringsläge eftersom uttryckningen medan loopen alltid skulle leda till sanningen.

Ska jag bryta, fortsätta eller passera

Som med nästan alla andra programmeringsspråk har Python också begreppet break and continue. Dessa sökord hjälper till att avsluta valfri slinga eller hoppa över en viss iteration av slingan. Python har också ett annat nyckelord - pass. Låt oss ta en titt på dessa.

1) Break

Brottsnyckelordet indikerar kompilatorn att hoppa ur en slinga och avsluta dess körning.

Exempel

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

Produktion:

Programmet ovan bryter det inre för slingan om värdet på I och j är lika. Det kör inte ytterligare iterationer av slingan. Detta kan förstås ytterligare med fortsättningsuttalandet.

2) Fortsätt

Fortsätt nyckelordet indikerar kompilatorn för att hoppa över den aktuella iterationen av slingan och fortsätta med nästa iteration.

Exempel

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

Produktion:

Lägg märke till att samma program, men med fortsatt uttalande istället för paus, inte avslutar körning av slingan. Den hoppar bara över den aktuella iterationen.

3) Pass

Passnyckelordet är intressant i Python. Det betyder helt enkelt inte göra någonting. Det används när kodblocket behövs syntaktiskt, men du vill inte att något kommando ska utföras. Det fungerar helt enkelt som en platshållare.

Exempel

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

Produktion:

Slutsats

Loops är strategiskt mycket viktigt för att lära sig att utföra en uppgift med minimala kodrader. Detta är bara en grundläggande introduktion till slingor. Det rekommenderas att leka mer, bli kreativ och utforska loops potentialen vidare.

Rekommenderade artiklar

Detta är en guide till Python Nested Loops. Här diskuterar vi Python Nested Loops med syntax, exempel, output och exekveringsflöde. Du kan också titta på följande artikel för att lära dig mer -

  1. Python Frameworks
  2. Hur man installerar Python
  3. Guide till loopar i Python
  4. Vad är Java-gränssnitt?
  5. Olika typer av slingor med dess fördelar
  6. Loops i VBScript med exempel

Kategori: