11.1 Ternärer Operator
In Python gibt es den sogenannten ternären Operator, der im Wesentlichen
eine abgewandelte Form des Operators if
else
darstellt.
Nehmen wir an, du hast folgenden Code:
if a < b:
min = a
else:
min = b
Damit solch einfacher Code nicht viel Platz einnimmt, wurde eine kompakte Schreibweise dafür entwickelt. Sie sieht so aus:
min = a if a < b else b
Die allgemeine Form des ternären Operators kann beschrieben werden als:
variable = wert1 if bedingung else wert2
Wenn die bedingung wahr ist, wird der wert1 der Variablen zugewiesen. Ist sie falsch, wird wert2 zugewiesen.
Beachte, dass hier kein Doppelpunkt nach der Bedingung gesetzt wird.
11.2 Der Operator else in Schleifen
In Python wird der Operator else
oft mit den bedingten
Operatoren if
assoziiert. Seine Anwendung beschränkt sich
jedoch nicht darauf, und du kannst else
auch in Schleifen wie
for
und while
verwenden.
Dieser nicht offensichtliche Aspekt von else
im Kontext von
Schleifen kann Anfänger verwirren, eröffnet aber interessante Möglichkeiten
zur Steuerung des Programmablaufs.
Wie else
in Schleifen funktioniert
In Schleifen wird else
nach dem Abschluss der Schleife
ausgeführt, allerdings nur, wenn die Schleife normal beendet wurde (also
nicht durch den Operator break
unterbrochen wurde). Diese
Besonderheit macht else
nützlich für Szenarien, in denen man
überprüfen muss, ob die Schleife vorzeitig abgebrochen wurde.
Beispiel einer Verwendung in einer for
-Schleife:
for i in range(3):
password = input('Gib das Passwort ein: ')
if password == 'sekret':
print('Passwort akzeptiert.')
break
else:
print('Keine Versuche mehr oder alle eingegebenen Passwörter sind falsch.')
Hier wird else
ausgeführt, wenn der User dreimal ein falsches
Passwort eingibt. Gibt der User das richtige Passwort ein, wird die Schleife
durch break
unterbrochen, und der else
-Block wird
nicht ausgeführt.
Beispiel einer Verwendung in einer while
-Schleife:
n = 5
while n > 0:
print(n)
n -= 1
else:
print('Die Schleife wurde normal beendet.')
In diesem Fall wird else
ausgeführt, nachdem die Schleife
natürlicherweise endet, weil die Bedingung falsch geworden ist.
Praktische Bedeutung
Die Verwendung von else
in Schleifen kann besonders in
Suchalgorithmen nützlich sein, wo es wichtig ist festzustellen, ob die
Suche erfolgreich war. Zum Beispiel kann bei der Suche nach einem
nicht existierenden Element in einer Liste else
genutzt werden,
um nach dem Ende der Schleife eine Fehlerinformation auszugeben.
Verwende else
in Schleifen klar und konsistent, um anderen
die Lesbarkeit deines Codes zu erleichtern. Bedenke, dass else
in Schleifen nicht immer intuitiv ist, daher ist es sinnvoll, Kommentare
hinzuzufügen oder andere Möglichkeiten der Logikimplementierung zu wählen,
wenn dies den Code verständlicher macht.
11.3 Verschachtelte Schleifen
In Python kannst du sehr komplexe Logik sehr kompakt schreiben. Für einige Fälle benötigst du verschachtelte if-Anweisungen, für andere verschachtelte Schleifen. Über einige Feinheiten ihrer Funktionsweise sprechen wir jetzt:
Eine verschachtelte Schleife bedeutet, dass eine Schleife innerhalb einer anderen enthalten ist. Dies erlaubt es zum Beispiel, mehrdimensionale Arrays, Listen von Listen oder andere verschachtelte Datenstrukturen zu verarbeiten.
Verschachtelte Schleifen bestehen aus einer äußeren Schleife und einer oder mehreren inneren Schleifen. Jedes Mal, wenn die äußere Schleife eine Iteration durchläuft, wird die innere Schleife vollständig ausgeführt:
for i in range(3): # Äußere Schleife
for j in range(3): # Innere Schleife
print(f"({i}, {j})")
Aus Sicht der äußeren Schleife ist die innere Schleife und ihr Inhalt einfach ein Block von Befehlen, die für jede Iteration der äußeren Schleife ausgeführt werden. Der äußeren Schleife ist es völlig egal, was sich darin befindet, wie viele Schleifen es gibt und so weiter. Sie führt einfach ihren inneren Befehlsblock jedes Mal für die Variable aus ihrer Liste aus.
Lass uns eine Multiplikationstabelle
auf dem Bildschirm ausgeben
— verschachtelte Schleifen sind perfekt für diese Aufgabe geeignet. Die
Erstellung der Multiplikationstabelle mit verschachtelten Schleifen,
wobei eine Schleife für den Multiplikator und die andere für das Multiplikand
zuständig ist:
n = 5
for i in range(1, n + 1):
for j in range(1, n + 1):
print(f"{i} * {j} = {i * j}", end='\t')
print() # Zeilenumbruch für den nächsten Multiplikator
Dieses Beispiel wird die Tabelle ausgeben:
1 * 1 = 1 1 * 2 = 2 1 * 3 = 3 1 * 4 = 4 1 * 5 = 5
2 * 1 = 2 2 * 2 = 4 2 * 3 = 6 2 * 4 = 8 2 * 5 = 10
3 * 1 = 3 3 * 2 = 6 3 * 3 = 9 3 * 4 = 12 3 * 5 = 15
4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16 4 * 5 = 20
5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25
Um verschachtelte Schleifen besser zu verstehen, brauchst du einfach mehr Übung — das ist der schnellste Weg, um fast jede nicht offensichtliche Sache in der Programmierung zu meistern.
GO TO FULL VERSION