Skip to content

Teil 8: Schleifen (Loops)

Übung 8.1: Einfache for-Schleife

python
"""
Übung 8.1: Einfache for-Schleife
Aufgabe: Schreibe eine Funktion, die eine Liste [1, 2, 3, 4, 5] mit einer for-Schleife erstellt.
Konzept: for-Schleife mit range()
"""

def zahlen_bis_fuenf():
    """
    Erstellt eine Liste mit Zahlen von 1 bis 5.

    Returns:
        Liste [1, 2, 3, 4, 5]
    """
    # DEINE LÖSUNG HIER
    pass


# Tests
assert zahlen_bis_fuenf() == [1, 2, 3, 4, 5], "Fehler: Sollte [1, 2, 3, 4, 5] sein"
print("✓ Alle Tests bestanden!")

Übung 8.2: Summe mit Schleife

python
"""
Übung 8.2: Summe mit Schleife
Aufgabe: Schreibe eine Funktion, die die Summe 1 + 2 + ... + n berechnet.
Konzept: for-Schleife mit Akkumulator
"""

def summe_bis_n(n):
    """
    Berechnet die Summe von 1 bis n.

    Args:
        n: Obergrenze

    Returns:
        Summe von 1 + 2 + ... + n
    """
    # DEINE LÖSUNG HIER
    pass


# Tests
assert summe_bis_n(5) == 15, "Fehler: 1+2+3+4+5 = 15"
assert summe_bis_n(10) == 55, "Fehler: Summe bis 10 sollte 55 sein"
assert summe_bis_n(1) == 1, "Fehler: Summe bis 1 sollte 1 sein"
print("✓ Alle Tests bestanden!")

Übung 8.3: Gerade Zahlen zählen

python
"""
Übung 8.3: Gerade Zahlen zählen
Aufgabe: Schreibe eine Funktion, die zählt, wie viele gerade Zahlen in einer Liste sind.
Konzept: for-Schleife mit if-Bedingung, Modulo-Operator %
"""

def gerade_zaehlen(zahlen):
    """
    Zählt gerade Zahlen in einer Liste.

    Args:
        zahlen: Liste von Zahlen

    Returns:
        Anzahl der geraden Zahlen
    """
    # DEINE LÖSUNG HIER
    pass


# Tests
assert gerade_zaehlen([1, 2, 3, 4, 5, 6]) == 3, "Fehler: 3 gerade Zahlen"
assert gerade_zaehlen([1, 3, 5, 7]) == 0, "Fehler: Keine geraden Zahlen"
assert gerade_zaehlen([2, 4, 6, 8]) == 4, "Fehler: 4 gerade Zahlen"
print("✓ Alle Tests bestanden!")

Übung 8.4: Code Reading (Code lesen)

Aufgabe: Lies den folgenden Code und erstelle eine Variablen-Tabelle. Erkläre den Ablauf der Schleife.

python
summe = 0
zahlen = [10, 20, 30]

for zahl in zahlen:
    summe = summe + zahl
    print(f"Aktuelle Summe: {summe}")

print(f"Gesamt-Summe: {summe}")

Fragen:

  1. Wie oft wird die Schleife durchlaufen?
  2. Erstelle eine Tabelle, die zeigt, wie sich summe in jeder Iteration ändert:
Iterationzahlsumme (vorher)summe (nachher)
1???
2???
3???
  1. Was ist der finale Wert von summe?

Übung 8.5: Debugging (Fehler finden)

Aufgabe: Der folgende Code soll alle ungeraden Zahlen von 1 bis 10 sammeln, aber es gibt einen Fehler.

python
"""
Übung 8.5: Debugging - range() Grenzen
Aufgabe: Der Code soll [1, 3, 5, 7, 9] zurückgeben. Was ist das Problem mit range(1, 10)?
Hinweis: range(start, stop) - ist stop inklusiv oder exklusiv?
"""

def ungerade_zahlen():
    """Sammelt ungerade Zahlen von 1 bis 10."""
    ungerade = []

    for i in range(1, 10):
        if i % 2 == 1:
            ungerade.append(i)

    return ungerade

# Test
print(ungerade_zahlen())  # Sollte [1, 3, 5, 7, 9] sein

Bonus-Übungen

Bonus 3: Fakultät

python
"""
Bonus 3: Fakultät
Aufgabe: Berechne n! = n × (n-1) × ... × 2 × 1. Beispiel: 5! = 120
"""

def fakultaet(n):
    """Berechnet die Fakultät von n (n!)."""
    # DEINE LÖSUNG HIER
    pass

# Tests
assert fakultaet(5) == 120, "Fehler: 5! = 120"
assert fakultaet(1) == 1, "Fehler: 1! = 1"
assert fakultaet(0) == 1, "Fehler: 0! = 1"
print("✓ Alle Tests bestanden!")

Bonus 4: Summe einer Liste

python
"""
Bonus 4: Summe einer Liste
Aufgabe: Berechne die Summe aller Zahlen in einer Liste OHNE die sum()-Funktion!
"""

def summe_liste(zahlen):
    """Berechnet die Summe aller Zahlen in einer Liste."""
    # DEINE LÖSUNG HIER
    pass

# Tests
assert summe_liste([1, 2, 3, 4, 5]) == 15, "Fehler: Summe sollte 15 sein"
assert summe_liste([]) == 0, "Fehler: Leere Liste = 0"
print("✓ Alle Tests bestanden!")

Bonus 5: Durchschnitt berechnen

python
"""
Bonus 5: Durchschnitt berechnen
Aufgabe: Berechne den Durchschnitt einer Liste (Summe / Anzahl).
"""

def durchschnitt(zahlen):
    """Berechnet den Durchschnitt einer Liste."""
    # DEINE LÖSUNG HIER
    pass

# Tests
assert durchschnitt([1, 2, 3, 4, 5]) == 3.0, "Fehler: Durchschnitt = 3.0"
assert durchschnitt([10, 20, 30]) == 20.0, "Fehler: Durchschnitt = 20.0"
print("✓ Alle Tests bestanden!")

Bonus 6: Gerade Zahlen filtern

python
"""
Bonus 6: Gerade Zahlen filtern
Aufgabe: Filtere alle geraden Zahlen aus einer Liste (nur Zahlen, die durch 2 teilbar sind).
"""

def gerade_zahlen(zahlen):
    """Filtert alle geraden Zahlen aus einer Liste."""
    # DEINE LÖSUNG HIER
    pass

# Tests
assert gerade_zahlen([1, 2, 3, 4, 5, 6]) == [2, 4, 6], "Fehler: [2, 4, 6]"
assert gerade_zahlen([1, 3, 5]) == [], "Fehler: Leere Liste"
print("✓ Alle Tests bestanden!")

Bonus 10: Liste verdoppeln

python
"""
Bonus 10: Liste verdoppeln
Aufgabe: Verdopple jedes Element in einer Liste. [1, 2, 3] → [2, 4, 6]
"""

def liste_verdoppeln(zahlen):
    """Verdoppelt jedes Element in einer Liste."""
    # DEINE LÖSUNG HIER
    pass

# Tests
assert liste_verdoppeln([1, 2, 3]) == [2, 4, 6], "Fehler: [2, 4, 6]"
assert liste_verdoppeln([]) == [], "Fehler: Leere Liste"
print("✓ Alle Tests bestanden!")

Bonus 13: Primzahl-Checker

python
"""
Bonus 13: Primzahl-Checker
Aufgabe: Prüfe, ob eine Zahl eine Primzahl ist (nur durch 1 und sich selbst teilbar).
Primzahlen: 2, 3, 5, 7, 11, 13, ...
"""

def ist_primzahl(n):
    """Prüft, ob eine Zahl eine Primzahl ist."""
    # DEINE LÖSUNG HIER
    pass

# Tests
assert ist_primzahl(2) == True, "Fehler: 2 ist Primzahl"
assert ist_primzahl(4) == False, "Fehler: 4 ist keine Primzahl"
assert ist_primzahl(17) == True, "Fehler: 17 ist Primzahl"
print("✓ Alle Tests bestanden!")

Bonus 14: Fibonacci-Sequenz

python
"""
Bonus 14: Fibonacci-Sequenz
Aufgabe: Generiere die ersten n Fibonacci-Zahlen.
Fibonacci: 0, 1, 1, 2, 3, 5, 8, 13, ... (jede Zahl ist die Summe der zwei vorherigen)
"""

def fibonacci(n):
    """Generiert die ersten n Fibonacci-Zahlen."""
    # DEINE LÖSUNG HIER
    pass

# Tests
assert fibonacci(7) == [0, 1, 1, 2, 3, 5, 8], "Fehler: Fibonacci-Sequenz"
assert fibonacci(1) == [0], "Fehler: [0]"
print("✓ Alle Tests bestanden!")

Bonus 15: Liste sortieren

python
"""
Bonus 15: Liste sortieren
Aufgabe: Sortiere eine Liste aufsteigend. Tipp: sorted() oder .sort()
"""

def sortiere_liste(zahlen):
    """Sortiert eine Liste aufsteigend."""
    # DEINE LÖSUNG HIER
    pass

# Tests
assert sortiere_liste([3, 1, 4, 1, 5, 9]) == [1, 1, 3, 4, 5, 9], "Fehler: Sortierung"
assert sortiere_liste([]) == [], "Fehler: Leere Liste"
print("✓ Alle Tests bestanden!")

Informatik & ICT Unterricht Neufeld