Python Kontrollstrukturen

Ein Dashboard über Schleifen und Verzweigungen in Python

Verzweigungen in Python

If-Anweisung

Die if-Anweisung ist die grundlegendste Form der Verzweigung in Python.

Syntax:

if bedingung:
    # Code der ausgeführt wird, wenn die Bedingung True ist

Beispiel:

alter = 18
if alter >= 18:
    print("Sie sind volljährig.")

If-Else-Anweisung

Mit else können Sie Code angeben, der ausgeführt wird, wenn die Bedingung nicht erfüllt ist.

Syntax:

if bedingung:
    # Code wenn Bedingung True
else:
    # Code wenn Bedingung False

Beispiel:

alter = 16
if alter >= 18:
    print("Sie sind volljährig.")
else:
    print("Sie sind minderjährig.")

If-Elif-Else-Anweisung

Für mehrere Bedingungen können Sie elif (else if) verwenden.

Syntax:

if bedingung1:
    # Code wenn bedingung1 True
elif bedingung2:
    # Code wenn bedingung2 True
else:
    # Code wenn keine Bedingung True

Beispiel:

note = 2.3

if note == 1.0:
    print("Sehr gut!")
elif note <= 2.0:
    print("Gut!")
elif note <= 3.0:
    print("Befriedigend")
elif note <= 4.0:
    print("Ausreichend")
else:
    print("Nicht bestanden")

Hinweis: Die Reihenfolge der Bedingungen ist wichtig! Python überprüft die Bedingungen von oben nach unten und führt nur den ersten zutreffenden Block aus.

Verschachtelte If-Anweisungen

If-Anweisungen können auch verschachtelt werden.

Beispiel:

alter = 20
hat_fuehrerschein = True

if alter >= 18:
    if hat_fuehrerschein:
        print("Darf Auto fahren.")
    else:
        print("Darf kein Auto fahren (kein Führerschein).")
else:
    print("Darf kein Auto fahren (zu jung).")

Achtung: Zu starke Verschachtelung kann den Code schwer lesbar machen. Ab 3-4 Verschachtelungsebenen sollten Sie über eine Umstrukturierung nachdenken.

Schleifen in Python

For-Schleife

Die for-Schleife wird verwendet, um über eine Sequenz (Liste, Tuple, String etc.) zu iterieren.

Syntax:

for element in sequenz:
    # Code der für jedes Element ausgeführt wird

Beispiele:

# Über eine Liste iterieren
farben = ["rot", "grün", "blau"]
for farbe in farben:
    print(farbe)

# Mit range() Zahlen durchgehen
for i in range(5):  # 0 bis 4
    print(i)

# Über einen String iterieren
for buchstabe in "Python":
    print(buchstabe)

While-Schleife

Die while-Schleife wird ausgeführt, solange eine Bedingung wahr ist.

Syntax:

while bedingung:
    # Code der wiederholt ausgeführt wird

Beispiele:

# Einfacher Zähler
zaehler = 0
while zaehler < 5:
    print(zaehler)
    zaehler += 1

# Benutzereingabe validieren
eingabe = ""
while eingabe != "quit":
    eingabe = input("Eingabe ('quit' zum Beenden): ")
    print("Sie haben eingegeben:", eingabe)

Achtung vor Endlosschleifen! Stellen Sie sicher, dass die Bedingung irgendwann False wird, sonst läuft die Schleife unendlich weiter.

Schleifensteuerung: break, continue und else

Python bietet spezielle Anweisungen zur Steuerung von Schleifen.

break

Beendet die Schleife sofort:

for i in range(10):
    if i == 5:
        break
    print(i)  # Druckt 0 bis 4

continue

Springt zum nächsten Schleifendurchlauf:

for i in range(5):
    if i == 2:
        continue
    print(i)  # Druckt 0, 1, 3, 4

else

Wird ausgeführt, wenn die Schleife normal beendet wird (nicht durch break):

for i in range(3):
    print(i)
else:
    print("Schleife normal beendet")

Vergleich: For vs. While

Aspekt For-Schleife While-Schleife
Verwendung Wenn die Anzahl der Durchläufe bekannt ist oder über eine Sequenz iteriert wird Wenn eine Bedingung erfüllt sein muss (Anzahl der Durchläufe unbekannt)
Initialisierung Automatisch durch die Sequenz Manuell vor der Schleife
Bedingung Implizit durch die Sequenz Explizit angegeben
Inkrement Automatisch Manuell im Schleifenkörper
Endlosschleifen Unwahrscheinlich Möglich, wenn Bedingung nie False wird

Tipp: In Python wird die for-Schleife meist bevorzugt, wenn möglich, da sie weniger fehleranfällig ist (keine Endlosschleifen, keine vergessenen Inkremente).

Praktische Beispiele

Zahlenraten-Spiel

import random

zahl = random.randint(1, 100)
versuche = 0

while True:
    raten = int(input("Rate eine Zahl zwischen 1 und 100: "))
    versuche += 1
    
    if raten < zahl:
        print("Zu niedrig!")
    elif raten > zahl:
        print("Zu hoch!")
    else:
        print(f"Richtig! Du hast {versuche} Versuche gebraucht.")
        break

Primzahlen finden

# Finde alle Primzahlen bis 100
for num in range(2, 101):
    is_prime = True
    for i in range(2, int(num**0.5) + 1):
        if num % i == 0:
            is_prime = False
            break
    if is_prime:
        print(num, end=" ")