5.9 KiB
Executable File
#lf5
Python – if-Statements & Schleifen
Eine kompakte Referenz zu Bedingungen und Schleifen in Python.
1. if / elif / else
Führt Code abhängig von einer Bedingung aus.
Grundstruktur
if bedingung:
# wird ausgeführt wenn True
print("Bedingung erfüllt")
elif andere_bedingung:
# wird ausgeführt wenn erste False, diese True
print("Andere Bedingung erfüllt")
else:
# wird ausgeführt wenn alle Bedingungen False
print("Keine Bedingung erfüllt")
Vergleichs- und logische Operatoren
| Operator | Bedeutung |
|---|---|
== |
gleich |
!= |
ungleich |
<, >, <=, >= |
kleiner/größer (gleich) |
and |
logisches UND |
or |
logisches ODER |
not |
logisches NICHT |
in |
Mitgliedschaft |
not in |
keine Mitgliedschaft |
x = 42
if x > 0 and x < 100:
print("im Bereich")
if x % 2 == 0:
print("gerade")
elif x % 2 != 0:
print("ungerade")
farbe = "rot"
if farbe in ["rot", "blau", "gelb"]:
print("Primärfarbe")
Ternärer Ausdruck
Kurze Schreibweise für einfaches if/else:
ergebnis = "gerade" if x % 2 == 0 else "ungerade"
Hinweis: Python kennt kein
switch-Statement. Stattdessen nutzt manelif-Ketten oder ab Python 3.10 dasmatch-Statement.
2. for-Schleife
Iteriert über jedes Element einer Sequenz (Liste, Tuple, String, Range, …).
Grundstruktur
for element in sequenz:
print(element)
Häufige Anwendungsfälle
Liste iterieren:
früchte = ["Apfel", "Birne", "Kirsche"]
for frucht in früchte:
print(frucht)
Zahlenbereich mit range():
for i in range(5): # 0, 1, 2, 3, 4
print(i)
for i in range(1, 10, 2): # 1, 3, 5, 7, 9
print(i)
range(start, stop, step) – stop ist nicht enthalten.
Index + Wert mit enumerate():
namen = ["Anna", "Ben", "Clara"]
for i, name in enumerate(namen):
print(f"{i}: {name}")
# 0: Anna
# 1: Ben
# 2: Clara
Zwei Listen parallel mit zip():
namen = ["Anna", "Ben"]
noten = [1, 2]
for name, note in zip(namen, noten):
print(f"{name}: {note}")
Dictionary iterieren:
person = {"name": "Max", "alter": 30}
for key, value in person.items():
print(f"{key} = {value}")
String zeichenweise:
for zeichen in "Python":
print(zeichen)
List Comprehension (kompakte for-Schleife)
quadrate = [x**2 for x in range(10)]
gerade = [x for x in range(20) if x % 2 == 0]
for / else
Der else-Block wird ausgeführt, wenn die Schleife normal endet (kein break):
zahlen = [1, 3, 5, 7]
for n in zahlen:
if n < 0:
print("Negative Zahl gefunden!")
break
else:
print("Alle Zahlen sind positiv.")
3. while-Schleife
Wiederholt Code, solange eine Bedingung True ist.
Grundstruktur
while bedingung:
# wird wiederholt solange True
code_hier()
Beispiele
Zähler:
i = 0
while i < 5:
print(i)
i += 1 # wichtig: ohne dies → Endlosschleife!
Benutzereingabe bis Abbruch:
while True:
eingabe = input("Eingabe (oder 'exit'): ")
if eingabe == "exit":
break
print(f"Du hast eingegeben: {eingabe}")
Bedingung abhängig vom Ergebnis:
zahl = 256
while zahl > 1:
zahl //= 2
print(zahl)
while / else
Wie bei for: else läuft nur, wenn keine break-Anweisung ausgeführt wurde.
i = 0
while i < 3:
print(i)
i += 1
else:
print("Schleife regulär beendet.")
Achtung: Die häufigste Fehlerquelle ist eine vergessene Variable-Aktualisierung, die zu einer Endlosschleife führt. Immer sicherstellen, dass die Bedingung irgendwann
Falsewird!
4. do-while – Gibt es in Python nicht!
Python hat kein do-while-Statement wie in C, Java oder JavaScript. Das Verhalten lässt sich aber mit while True und break nachbauen:
do-while Äquivalent:
# Entspricht: do { ... } while (bedingung)
while True:
# Code wird mindestens einmal ausgeführt
eingabe = input("Zahl eingeben: ")
zahl = int(eingabe)
if zahl > 0: # Schleife läuft weiter solange zahl <= 0
break
print(f"Positive Zahl: {zahl}")
Vergleich mit anderen Sprachen:
// Java / C / JavaScript:
do {
eingabe = scanner.nextLine();
} while (!eingabe.equals("exit"));
# Python-Äquivalent:
while True:
eingabe = input()
if eingabe == "exit":
break
5. Steueranweisungen
Gelten für for- und while-Schleifen.
break – Schleife sofort beenden
for i in range(10):
if i == 5:
break # verlässt die Schleife
print(i) # gibt 0, 1, 2, 3, 4 aus
continue – aktuelle Iteration überspringen
for i in range(6):
if i == 3:
continue # überspringt i = 3
print(i) # gibt 0, 1, 2, 4, 5 aus
pass – Platzhalter / nichts tun
for i in range(5):
pass # leere Schleife, kein Fehler
if bedingung:
pass # noch nicht implementiert
Verschachtelte Schleifen
break und continue wirken nur auf die innerste Schleife:
for i in range(3):
for j in range(3):
if j == 1:
break # beendet nur die innere Schleife
print(i, j)
Tipp: Für den Ausbruch aus mehreren verschachtelten Schleifen die Schleife in eine Funktion auslagern und
returnverwenden.
Kurzübersicht
| Schleife | Wann verwenden | Python-Syntax |
|---|---|---|
for |
Anzahl der Iterationen bekannt / Iteration über Sequenz | for x in sequenz: |
while |
Anzahl unbekannt, abhängig von Bedingung | while bedingung: |
| do-while | Mind. einmal ausführen (kein natives Keyword) | while True: ... if ...: break |