Wprowadzenie do Python Nested Loops

Witamy w innym rozdziale kursu szkoleniowego Python - Nested Loops. Świetny sposób na zapętlenie pętli, zagnieżdżone pętle sprawdziły się w każdym języku programowania. Dzisiaj skupimy się na Pythonie - typach, składni i przykładach. Więc zacznijmy.

Pętle zagnieżdżone

Dobrze byłoby krótko dotknąć bazy Nested Loops, zanim przejdziemy do Pythona. Jeśli pętla istnieje w ciele innej pętli, jest nazywana pętlą zagnieżdżoną. Oznacza to, że chcemy wykonać kod wewnętrznej pętli wiele razy. Pętla zewnętrzna kontroluje, ile iteracji zostanie poddana pętli wewnętrznej. Podstawowym przykładem zagnieżdżonej pętli for jest:

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

Należy tutaj zauważyć, że każdy rodzaj pętli może być zagnieżdżony w innej pętli. Na przykład pętla while może być zagnieżdżona w pętli for lub odwrotnie.

Zagnieżdżone pętle Pythona

1) Zagnieżdżona składnia pętli

Podstawowa składnia zagnieżdżonej pętli for w Pythonie to:

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

Przykład

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

Wynik:

Przepływ wykonania

Spróbujmy zrozumieć przepływ wykonania powyższego programu. W programie zastosowaliśmy dwie zmienne iteracyjne i i j, aby wydrukować wzór gwiazd.

Kompilator zaczyna się od linii 1. Napotyka pętlę for i funkcję range. Funkcja zakresu w Pythonie generuje iterowalną tablicę liczb całkowitych od 0 do liczby określonej w argumencie. Numer argumentu jest wykluczony z tablicy. W naszym przypadku wygeneruje tablicę (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10). Teraz kompilator wie, że musi wykonać kolejny zestaw instrukcji 10 razy.

Kiedy przesuwa się do linii 2, napotyka kolejną funkcję pętli i zasięgu. Zauważ, że argumentem tej funkcji zakresu jest obliczona wartość naszej zmiennej iteracyjnej i. Tak więc dynamicznie generuje tablicę w zależności od wartości i. Gdy i = 0, tablica jest pusta. Gdy i = 1, tablica ma wartość (0). Gdy i = 2, tablica ma wartość (0, 1) i tak dalej.

Tak więc, ile razy linia 3 jest wykonywana bezpośrednio, zależy od wartości i. Zwróć uwagę na wstawienie części end = '' 3. Zapobiega to drukowaniu przez Python linii na końcu każdej gwiazdy. Chcemy tylko podania linii na końcu każdej iteracji zewnętrznej pętli. Dlatego wyraźnie wydrukowaliśmy kanał w linii 4 naszego kodu.

Przyjrzyjmy się teraz uważnie każdej iteracji naszej zagnieżdżonej pętli for.

Iteracja pętli zewnętrznej 1

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

Iteracja pętli zewnętrznej 2

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

Iteracja pętli zewnętrznej 3

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

Iteracja pętli zewnętrznej 4

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

.
.
.

Iteracja pętli zewnętrznej 10

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

Iteracja pętli zewnętrznej 11

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

2) Zagnieżdżona pętla while

Składnia

Składnia zagnieżdżania pętli while w Pythonie jest następująca:

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

W przeciwieństwie do pętli for, pętla while nie ma wstępnie skompilowanej sekwencji iterowalnej. Podczas gdy pętla wykonuje kod, dopóki wyrażenie nie zmieni się w true. Deweloper musi więc zawsze pamiętać o aktualizacji iterującej zmiennej / wyrażenia, w przeciwnym razie pętla przejdzie w tryb nieskończonego wykonywania.

Przykład

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

Wynik:

Przepływ wykonania

Wiersz 1 kodu ustawia zmienną iteracyjną zewnętrznej pętli na wartość początkową. Następny wiersz to początek zewnętrznej pętli while. Ma wyrażenie i <= 5. To wyrażenie jest oceniane pod kątem prawdziwej wartości po każdej iteracji. Wykonanie wchodzi do pętli tylko wtedy, gdy warunek jest spełniony. Gdy tylko warunek stanie się fałszywy, pętla zostaje zakończona.

Ponieważ początkowa wartość I wynosi 1, warunek w wierszu 2 jest spełniony. Tak więc kompilator przechodzi do linii 3 i ustawia zmienną iteracyjną naszej wewnętrznej pętli j na 5. W linii 4 ponownie znajduje się pętla while z wyrażeniem, które ma wartość true. Tak więc kompilator wykonuje linie 5 i 6. Następnie przechodzi z powrotem do linii 4 i ocenia warunek. Jeśli warunek jest prawdziwy, ponownie przechodzi do linii 5 i 6. Jeśli warunek staje się fałszywy, pętla zostaje zakończona, a kolejne linie do wykonania to linia 7 i 8. To samo dotyczy pętli zewnętrznej.

Wiersze 6 i 7 są bardzo ważne, ponieważ aktualizują naszą zmienną iteracyjną. Bez nich przepływ programu przeszedłby w tryb nieskończonego wykonywania, ponieważ wyrażenia pętli while zawsze skutkowałyby prawdziwością.

Czy powinienem złamać, kontynuować czy zdać

Podobnie jak w przypadku prawie wszystkich innych języków programowania, również Python ma pojęcie przerwy i kontynuacji. Te słowa kluczowe pomagają zakończyć dowolną pętlę lub pominąć określoną iterację pętli. Python ma również inne słowo kluczowe - pass. Spójrzmy na to.

1) Przerwa

Słowo kluczowe break wskazuje, że kompilator wyskoczy z pętli i zakończy wykonywanie.

Przykład

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

Wynik:

Powyższy program przerywa wewnętrzną pętlę for, jeśli wartości I i j są równe. Nie wykonuje dalszych iteracji pętli. Można to dalej zrozumieć za pomocą instrukcji Continue.

2) Kontynuuj

Słowo kluczowe Continue wskazuje kompilatorowi na pominięcie bieżącej iteracji pętli i przejście do następnej iteracji.

Przykład

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

Wynik:

Zauważ, że ten sam program, ale z instrukcją kontynuacji zamiast break, nie przerywa wykonywania pętli. Pomija tylko bieżącą iterację.

3) Podaj

Słowo kluczowe pass jest interesujące w Pythonie. To po prostu znaczy nic nie robić. Jest używany, gdy blok kodu jest potrzebny składniowo, ale nie chcesz, aby komenda była wykonywana. Po prostu działa jako symbol zastępczy.

Przykład

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

Wynik:

Wniosek

Pętle są strategicznie bardzo ważne, aby nauczyć się wykonywać zadania z minimalną liczbą wierszy kodu. To tylko podstawowe wprowadzenie do pętli. Zaleca się więcej zabawy, kreatywność i dalsze badanie potencjału pętli.

Polecane artykuły

To jest przewodnik po Python Nested Loops. Tutaj omawiamy zagnieżdżone pętle Pythona ze składnią, przykładami, przepływem wyjściowym i przepływem wykonania. Możesz także spojrzeć na następujący artykuł, aby dowiedzieć się więcej -

  1. Frameworki Python
  2. Jak zainstalować Python
  3. Przewodnik po pętlach w Pythonie
  4. Co to jest interfejs Java?
  5. Różne rodzaje pętli z jej zaletami
  6. Pętle w VBScript z przykładami