if / elif / else ·
for ·
while ·
break / continue / pass ·
match case ·
Comprehensions
Kontrollstrukturen steuern den Programmablauf – sie entscheiden, welche Codeblöcke unter welchen Bedingungen ausgeführt werden und wie oft Schleifen durchlaufen werden.
if prüft eine Bedingung und führt den entsprechenden Block aus. elif (else if) und else erweitern die Fallunterscheidung.
| Operator | Bedeutung |
|---|---|
| == | Gleich |
| != | Ungleich |
| > | Größer als |
| < | Kleiner als |
| >= | Größer oder gleich |
| <= | Kleiner oder gleich |
| and | Logisches UND |
| or | Logisches ODER |
| not | Logisches NICHT |
0, None, [], {}, "" sind False, alles andere ist True.
for durchläuft alle Elemente einer Sequenz (Liste, Tupel, String, range, etc.). Die Schleife wird für jedes Element einmal ausgeführt.
| Konstrukt | Beschreibung |
|---|---|
| range(n) | Zahlen von 0 bis n-1 |
| range(start, stop) | Zahlen von start bis stop-1 |
| range(start, stop, step) | Zahlen mit Schrittweite |
| enumerate(liste) | Index und Wert gleichzeitig |
| zip(liste1, liste2) | Mehrere Listen parallel durchlaufen |
range() erzeugt keine Liste, sondern einen Iterator – das spart Speicherplatz bei großen Zahlenbereichen.
while führt den Codeblock aus, solange die Bedingung True ist. Die Bedingung wird vor jedem Durchlauf geprüft – bei False wird die Schleife beendet.
Ctrl+C können Sie diese abbrechen.
break beendet die aktuelle Schleife sofort. continue springt zum nächsten Schleifendurchlauf. pass ist ein Platzhalter, der nichts tut.
for-else-Konstruktion ist nützlich, um zu prüfen, ob eine Schleife vollständig durchlaufen wurde (ohne break).
match case (ab Python 3.10) ermöglicht strukturelles Pattern Matching – ähnlich wie switch in anderen Sprachen, aber deutlich mächtiger.
match case ist besonders nützlich für komplexe Datenstrukturen – es kann Tupel, Listen, Dictionaries und sogar benutzerdefinierte Klassen matchen.
Comprehensions ermöglichen die kompakte Erstellung von Listen, Dictionaries, Sets und Generatoren – oft lesbarer und schneller als manuelle Schleifen.
for-Schleifen mit append(). Generatoren verbrauchen weniger Speicher, da sie Werte faul (lazy) erzeugen.
if
for
while
break
match
[...]
if x > 0: print("Positiv") ·
for i in range(5): print(i) ·
while x < 10: x += 1