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:
- Wie oft wird die Schleife durchlaufen?
- Erstelle eine Tabelle, die zeigt, wie sich
summein jeder Iteration ändert:
| Iteration | zahl | summe (vorher) | summe (nachher) |
|---|---|---|---|
| 1 | ? | ? | ? |
| 2 | ? | ? | ? |
| 3 | ? | ? | ? |
- 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] seinBonus-Ü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!")