Einführung in Python Nested Loops

Willkommen zu einem weiteren Kapitel im Python-Lernkurs - Nested Loops. Eine großartige Möglichkeit, eine Schleife zu wiederholen. In jeder Programmiersprache haben sich verschachtelte Schleifen bewährt. Heute konzentrieren wir uns speziell auf Python - die Typen, die Syntax und die Beispiele. Also lasst uns anfangen.

Verschachtelte Schleifen

Es wäre gut, kurz auf Nested Loops im Allgemeinen einzugehen, bevor Sie mit Python im Besonderen fortfahren. Wenn eine Schleife im Körper einer anderen Schleife vorhanden ist, wird sie als verschachtelte Schleife bezeichnet. Dies bedeutet, dass wir den Code der inneren Schleife mehrmals ausführen möchten. Die äußere Schleife steuert, wie viele Iterationen die innere Schleife durchläuft. Ein grundlegendes Beispiel für eine verschachtelte for-Schleife ist:

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

Hierbei ist zu beachten, dass jede Art von Schleife in einer anderen Schleife verschachtelt werden kann. Beispielsweise kann eine while-Schleife in einer for-Schleife verschachtelt sein oder umgekehrt.

Verschachtelte Python-Schleifen

1) Geschachtelt für die Schleifensyntax

Die grundlegende Syntax einer verschachtelten for-Schleife in Python lautet:

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

Beispiel

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

Ausgabe:

Ausführungsablauf

Versuchen wir den Ablauf des obigen Programms zu verstehen. Im Programm haben wir zwei Iterationsvariablen i und j verwendet, um ein Sternmuster zu drucken.

Der Compiler beginnt mit Zeile 1. Er trifft auf eine for-Schleife und eine range-Funktion. Die Bereichsfunktion in Python gibt ein iterierbares Array von Ganzzahlen von 0 bis zu der im Argument angegebenen Zahl aus. Die Argumentnummer wird aus dem Array ausgeschlossen. In unserem Fall wird ein Array generiert (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10). Jetzt weiß der Compiler, dass er die nächsten Anweisungen zehnmal ausführen muss.

Wenn es zu Zeile 2 wechselt, trifft es auf eine andere für die Schleifen- und Bereichsfunktion. Beachten Sie, dass das Argument für diese Bereichsfunktion ein berechneter Wert unserer Iterationsvariablen i ist. Es generiert also dynamisch ein Array in Abhängigkeit vom Wert von i. Wenn i = 0 ist, ist das Array leer. Wenn i = 1 ist, ist das Array (0). Wenn i = 2 ist, ist das Array (0, 1) und so weiter.

Die Häufigkeit, mit der Zeile 3 direkt ausgeführt wird, hängt also vom Wert von i ab. Beachten Sie das part end = '' inline 3. Dies soll verhindern, dass Python nach jedem Stern einen Zeilenvorschub ausgibt. Wir wollen nur einen Zeilenvorschub am Ende jeder Iteration der äußeren Schleife. Aus diesem Grund haben wir in Zeile 4 unseres Codes ausdrücklich einen Zeilenumbruch gedruckt.

Lassen Sie uns nun jede Iteration unserer verschachtelten for-Schleife genau untersuchen.

Iteration der äußeren Schleife 1

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

Iteration der äußeren Schleife 2

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

Außenschleifeniteration 3

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

Iteration der äußeren Schleife 4

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

.
.
.

Iteration der äußeren Schleife 10

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

Außenschleifeniteration 11

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

2) Verschachtelte while-Schleife

Syntax

Die Syntax zum Verschachteln der while-Schleife in Python lautet:

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

Im Gegensatz zur for-Schleife verfügt die while-Schleife nicht über eine vorkompilierte iterierbare Sequenz. While-Schleife führt den Code so lange aus, bis der Ausdruck als true ausgewertet wird. Ein Entwickler muss also immer daran denken, die iterierende Variable / den iterierenden Ausdruck zu aktualisieren, sonst wechselt die Schleife in den unendlichen Ausführungsmodus.

Beispiel

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

Ausgabe:

Ausführungsablauf

Zeile 1 des Codes setzt die Iterationsvariable der äußeren Schleife auf den Anfangswert. Die nächste Zeile ist der Anfang der äußeren while-Schleife. Es hat einen Ausdruck i <= 5. Dieser Ausdruck wird nach jeder Iteration auf den wahren Wert ausgewertet. Die Ausführung tritt nur dann in die Schleife ein, wenn die Bedingung erfüllt ist. Sobald die Bedingung falsch wird, wird die Schleife beendet.

Da der Anfangswert von I 1 ist, ist die Bedingung in Zeile 2 wahr. Der Compiler wechselt also zu Zeile 3 und setzt die Iterationsvariable j unserer inneren Schleife auf 5. Zeile 4 enthält wiederum eine while-Schleife mit einem Ausdruck, der als wahr ausgewertet wird. Der Compiler führt also die Zeilen 5 und 6 aus. Anschließend kehrt er zu Zeile 4 zurück und wertet die Bedingung aus. Wenn die Bedingung wahr ist, tritt sie erneut in die Zeilen 5 und 6 ein. Wenn die Bedingung falsch wird, wird die Schleife beendet und die nächsten auszuführenden Zeilen sind die Zeilen 7 und 8. Dasselbe gilt für die äußere Schleife.

Zeile 6 und 7 sind sehr wichtig, da sie unsere iterierende Variable aktualisieren. Ohne sie würde der Programmfluss in den unendlichen Ausführungsmodus wechseln, da die while-Schleifenausdrücke immer zu Wahrheiten führen würden.

Soll ich brechen, weitermachen oder bestehen?

Wie bei fast allen anderen Programmiersprachen hat auch Python das Konzept von break and continue. Mithilfe dieser Schlüsselwörter können Sie eine Schleife beenden oder eine bestimmte Iteration der Schleife überspringen. Python hat auch ein anderes Schlüsselwort - Durchlauf. Schauen wir uns diese an.

1) Pause

Das break-Schlüsselwort gibt an, dass der Compiler aus einer Schleife springen und ihre Ausführung beenden soll.

Beispiel

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

Ausgabe:

Das obige Programm unterbricht die innere for-Schleife, wenn der Wert von I und j gleich ist. Weitere Iterationen der Schleife werden nicht ausgeführt. Dies kann mit der continue-Anweisung weiter verstanden werden.

2) Weiter

Das Schlüsselwort continue gibt an, dass der Compiler die aktuelle Iteration der Schleife überspringen und mit der nächsten Iteration fortfahren soll.

Beispiel

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

Ausgabe:

Beachten Sie, dass dasselbe Programm, jedoch mit der Anweisung continue anstelle von break, die Schleifenausführung nicht beendet. Es wird nur die aktuelle Iteration übersprungen.

3) Bestehen

Das Schlüsselwort pass ist in Python interessant. Es bedeutet einfach nichts zu tun. Es wird verwendet, wenn der Codeblock syntaktisch benötigt wird, Sie jedoch keinen Befehl ausführen möchten. Es fungiert einfach als Platzhalter.

Beispiel

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

Ausgabe:

Fazit

Schleifen sind strategisch sehr wichtig, um zu lernen, eine Aufgabe mit minimalen Codezeilen auszuführen. Dies ist nur eine grundlegende Einführung in Schleifen. Es wird empfohlen, mehr herumzuspielen, kreativ zu werden und das Potenzial von Loops weiter zu erkunden.

Empfohlene Artikel

Dies ist eine Anleitung zu Python Nested Loops. Hier werden die verschachtelten Python-Schleifen mit der Syntax, den Beispielen, der Ausgabe und dem Ausführungsfluss erläutert. Sie können auch den folgenden Artikel lesen, um mehr zu erfahren -

  1. Python-Frameworks
  2. So installieren Sie Python
  3. Anleitung zu Loops in Python
  4. Was ist Java Interface?
  5. Verschiedene Arten von Schleifen mit ihren Vorteilen
  6. Schleifen in VBScript mit Beispielen