Skip to content

Python 101 - Übungen

Diese Übungen helfen dir, die Python-Grundlagen Schritt für Schritt zu erlernen. Die Übungen sind nach Schwierigkeit sortiert und bauen aufeinander auf.

So arbeitest du mit den Übungen:

  1. Kopiere den Code-Block in eine neue Thonny Datei
  2. Versuche, die Aufgabe zu lösen
  3. Führe den Code aus.
  4. Die Tests zeigen dir automatisch, ob deine Lösung korrekt ist

Teil 1: Einfacher Programmablauf & Print

Übung 1.1: Willkommensnachricht

python
"""
Übung 1.1: Willkommensnachricht
Aufgabe: Schreibe eine Funktion, die "Willkommen bei Python!" ausgibt.
Konzept: Einfache Ausgabe mit print()
"""

def willkommensnachricht():
    """
    Gibt eine Willkommensnachricht auf der Konsole aus.
    """
    # DEINE LÖSUNG HIER
    pass


# Führe die Funktion aus
willkommensnachricht()

Übung 1.2: Mehrere Zeilen

python
"""
Übung 1.2: Mehrere Zeilen
Aufgabe: Schreibe eine Funktion, die drei Zeilen Text ausgibt: "Zeile 1", "Zeile 2", "Zeile 3"
Konzept: Mehrfache print()-Aufrufe
"""

def drei_zeilen():
    """
    Gibt drei Zeilen Text auf der Konsole aus:
    "Zeile 1", "Zeile 2", "Zeile 3"
    """
    # DEINE LÖSUNG HIER
    pass


# Führe die Funktion aus
drei_zeilen()

Übung 1.3: Code Reading (Code lesen)

Aufgabe: Lies den folgenden Code und erkläre in eigenen Worten, was er macht.

python
print("Hallo")
print("Welt")
print("!")

Fragen:

  1. Wie viele Zeilen werden ausgegeben?
  2. In welcher Reihenfolge werden die Texte ausgegeben?
  3. Was passiert, wenn du die Reihenfolge der print-Befehle änderst?

Übung 1.4: Debugging (Fehler finden)

Aufgabe: Der folgende Code hat einen Fehler. Finde und behebe ihn mit dem Debugger in Thonny.

python
"""
Übung 1.4: Debugging
Aufgabe: Finde und behebe den Fehler im folgenden Code.
Hinweis: Nutze den Debugger (Step Over - F6), um den Code Zeile für Zeile durchzugehen.
"""

def meine_nachricht():
    """Gibt eine Nachricht aus."""
    print("Start")
    print"Mitte"
    print("Ende")

# Führe die Funktion aus
meine_nachricht()

Teil 1.5: Erste Schritte mit Turtle Graphics

Jetzt wird es kreativ! Mit dem turtle-Modul kannst du zeichnen und grafische Programme erstellen. Das macht Spaß und zeigt dir, wie Code visuelle Ergebnisse erzeugen kann.

Wichtige Turtle-Befehle:

  • forward(n) - Bewege die Turtle n Pixel vorwärts
  • back(n) - Bewege die Turtle n Pixel rückwärts
  • left(n) - Drehe die Turtle n Grad nach links
  • right(n) - Drehe die Turtle n Grad nach rechts
  • up() - Hebe den Stift an (zeichnet nicht mehr)
  • down() - Senke den Stift ab (zeichnet wieder)
  • home() - Kehre zur Startposition zurück
  • color("farbe") - Ändere die Zeichenfarbe (z.B. "red", "blue", "green")

Übung 1.5: Deine erste Linie

python
"""
Übung 1.5: Deine erste Linie
Aufgabe: Zeichne eine gerade Linie von 100 Pixeln Länge.
Konzept: forward() verwenden
"""
from turtle import *

# DEIN CODE HIER
# Zeichne eine Linie mit forward(100)

done()

Übung 1.6: Ein Quadrat zeichnen

python
"""
Übung 1.6: Ein Quadrat zeichnen
Aufgabe: Zeichne ein Quadrat mit Seitenlänge 100 Pixeln.
Tipp: Ein Quadrat hat 4 gleich lange Seiten und 4 rechte Winkel (90°).
Konzept: forward() und right() kombinieren
"""
from turtle import *

# DEIN CODE HIER
# Du brauchst 4 Mal: forward(100) und right(90)

done()

Übung 1.7: Buntes Dreieck

python
"""
Übung 1.7: Buntes Dreieck
Aufgabe: Zeichne ein Dreieck mit verschiedenen Farben für jede Seite.
Tipp: Ein gleichseitiges Dreieck hat Winkel von 120° bei jeder Ecke.
Konzept: color() verwenden um Farben zu ändern
"""
from turtle import *

# DEIN CODE HIER

done()

Übung 1.8: Treppe zeichnen

python
"""
Übung 1.8: Treppe zeichnen
Aufgabe: Zeichne eine Treppe mit 5 Stufen.
Tipp: Jede Stufe besteht aus einer horizontalen und einer vertikalen Linie.
Konzept: forward() und right()/left() für Richtungswechsel
"""
from turtle import *

# DEIN CODE HIER

done()

Übung 1.9: Schreibe deinen Namen

python
"""
Übung 1.9: Schreibe deinen Namen
Aufgabe: Zeichne die Buchstaben deines Namens mit der Turtle!
Tipp:
  - Nutze up() um den Stift anzuheben zwischen Buchstaben
  - Probiere verschiedene Farben für jeden Buchstaben!
Konzept: Alle Turtle-Befehle kombinieren und kreativ sein
"""
from turtle import *

# DEIN CODE HIER

done()

Teil 2: Variablen

Übung 2.1: Variable erstellen

python
"""
Übung 2.1: Variable erstellen
Aufgabe: Schreibe eine Funktion, die den Wert einer Variable (42) zurückgibt.
Konzept: Variable definieren und zurückgeben
"""

def meine_zahl():
    """
    Erstellt eine Variable mit dem Wert 42 und gibt sie zurück.

    Returns:
        Die Zahl 42
    """
    # DEINE LÖSUNG HIER
    pass


# Tests
assert meine_zahl() == 42, "Fehler: Sollte 42 sein"
print("✓ Alle Tests bestanden!")

Übung 2.2: Zwei Werte zurückgeben

python
"""
Übung 2.2: Zwei Werte zurückgeben
Aufgabe: Schreibe eine Funktion, die zwei Werte zurückgibt: Name "Anna" und Alter 16.
Konzept: Mehrere Werte mit return zurückgeben
"""

def name_und_alter():
    """
    Gibt Name und Alter zurück.

    Returns:
        Name "Anna" und Alter 16
    """
    # DEINE LÖSUNG HIER
    pass


# Tests
name, alter = name_und_alter()
assert name == "Anna", "Fehler: Name sollte 'Anna' sein"
assert alter == 16, "Fehler: Alter sollte 16 sein"
print("✓ Alle Tests bestanden!")

Übung 2.3: Drei Werte zurückgeben

python
"""
Übung 2.3: Drei Werte zurückgeben
Aufgabe: Schreibe eine Funktion, die drei Werte zurückgibt: Name "Anna", Alter 16, Stadt "Bern".
Konzept: Mehrere Werte zurückgeben (Tuple)
"""

def personen_daten():
    """
    Gibt Name, Alter und Stadt zurück.

    Returns:
        Name "Anna", Alter 16, Stadt "Bern"
    """
    # DEINE LÖSUNG HIER
    pass


# Tests
name, alter, stadt = personen_daten()
assert name == "Anna", "Fehler: Name sollte 'Anna' sein"
assert alter == 16, "Fehler: Alter sollte 16 sein"
assert stadt == "Bern", "Fehler: Stadt sollte 'Bern' sein"
print("✓ Alle Tests bestanden!")

Übung 2.4: Variable ändern

python
"""
Übung 2.4: Variable ändern
Aufgabe: Schreibe eine Funktion, die eine Variable mit 10 startet, sie auf 20 ändert und zurückgibt.
Konzept: Variablenwert ändern
"""

def variable_aendern():
    """
    Erstellt eine Variable mit Wert 10, ändert sie auf 20.

    Returns:
        Der neue Wert (20)
    """
    # DEINE LÖSUNG HIER
    pass


# Tests
assert variable_aendern() == 20, "Fehler: Sollte 20 sein"
print("✓ Alle Tests bestanden!")

Übung 2.5: Code Reading (Code lesen)

Aufgabe: Lies den folgenden Code und erstelle eine Variablen-Tabelle auf Papier.

python
x = 5
y = 10
x = y
y = 20

Erstelle diese Tabelle:

ZeileCodexy
1x = 5??
2y = 10??
3x = y??
4y = 20??

Fragen:

  1. Was ist der Wert von x am Ende?
  2. Was ist der Wert von y am Ende?

Übung 2.6: Debugging (Fehler finden)

Aufgabe: Der folgende Code hat einen Fehler. Nutze den Debugger, um die Variablenwerte zu beobachten und den Fehler zu finden.

python
"""
Übung 2.6: Debugging - Werte tauschen
Aufgabe: Der Code soll zwei Werte tauschen, aber es funktioniert nicht. Finde den Fehler!
Hinweis: Nutze das Variables-Fenster in Thonny und beobachte a und b.
"""

def tausche_werte():
    """Tauscht zwei Werte."""
    a = 10
    b = 20
    a = b
    b = a
    return a, b

# Test
a, b = tausche_werte()
print(f"a = {a}, b = {b}")  # Sollte a = 20, b = 10 sein

Teil 3: Grundlegende Datentypen

Übung 3.1: Datentypen erkennen

python
"""
Übung 3.1: Datentypen erkennen
Aufgabe: Schreibe eine Funktion, die Integer 42, Float 3.14, String "Hallo" und Boolean True zurückgibt.
Konzept: Verschiedene Datentypen
"""

def verschiedene_typen():
    """
    Gibt verschiedene Datentypen zurück.

    Returns:
        Integer 42, Float 3.14, String "Hallo", Boolean True
    """
    # DEINE LÖSUNG HIER
    pass


# Tests
ganze_zahl, komma_zahl, text, wahrheit = verschiedene_typen()
assert ganze_zahl == 42, "Fehler: Integer sollte 42 sein"
assert komma_zahl == 3.14, "Fehler: Float sollte 3.14 sein"
assert text == "Hallo", "Fehler: String sollte 'Hallo' sein"
assert wahrheit == True, "Fehler: Boolean sollte True sein"
print("✓ Alle Tests bestanden!")

Übung 3.2: String zusammensetzen

python
"""
Übung 3.2: String zusammensetzen
Aufgabe: Schreibe eine Funktion, die zwei Strings zu einem zusammenfügt (ohne Leerzeichen).
Konzept: String-Konkatenation
"""

def strings_verbinden(teil1, teil2):
    """
    Verbindet zwei Strings.

    Args:
        teil1: Erster String
        teil2: Zweiter String

    Returns:
        Beide Strings verbunden
    """
    # DEINE LÖSUNG HIER
    pass


# Tests
assert strings_verbinden("Hallo", "Welt") == "HalloWelt", "Fehler: Sollte 'HalloWelt' sein"
assert strings_verbinden("Python", "101") == "Python101", "Fehler: Sollte 'Python101' sein"
print("✓ Alle Tests bestanden!")

Übung 3.3: Code Reading (Code lesen)

Aufgabe: Lies den folgenden Code und erkläre, was passiert.

python
name = "Anna"
alter = 16
groesse = 1.65
ist_schueler = True

info = name + " ist " + str(alter) + " Jahre alt"
print(info)

Fragen:

  1. Welche Datentypen werden verwendet?
  2. Warum muss alter mit str() konvertiert werden?
  3. Was gibt das Programm aus?

Übung 3.4: Debugging (Fehler finden)

Aufgabe: Der folgende Code hat einen Typ-Fehler. Finde und behebe ihn.

python
"""
Übung 3.4: Debugging - Typ-Fehler
Aufgabe: Der Code soll eine Summe berechnen, aber es gibt einen Typ-Fehler. Finde ihn!
Hinweis: Beobachte die Typen der Variablen im Debugger.
"""

def berechne_summe():
    """Berechnet eine Summe."""
    zahl1 = "10"
    zahl2 = 20
    summe = zahl1 + zahl2
    return summe

# Test
print(berechne_summe())

Teil 4: Arithmetische Operationen

Übung 4.1: Addition

python
"""
Übung 4.1: Addition
Aufgabe: Schreibe eine Funktion, die zwei Zahlen addiert und die Summe zurückgibt.
Konzept: Addition mit +
"""

def addiere(a, b):
    """
    Addiert zwei Zahlen.

    Args:
        a: Erste Zahl
        b: Zweite Zahl

    Returns:
        Summe von a und b
    """
    # DEINE LÖSUNG HIER
    pass


# Tests
assert addiere(5, 3) == 8, "Fehler: 5 + 3 sollte 8 sein"
assert addiere(10, 20) == 30, "Fehler: 10 + 20 sollte 30 sein"
assert addiere(-5, 5) == 0, "Fehler: -5 + 5 sollte 0 sein"
print("✓ Alle Tests bestanden!")

Übung 4.2: Grundrechenarten

python
"""
Übung 4.2: Grundrechenarten
Aufgabe: Schreibe eine Funktion, die Summe, Differenz, Produkt und Quotient zweier Zahlen zurückgibt.
Konzept: +, -, *, /
"""

def grundrechenarten(a, b):
    """
    Führt alle Grundrechenarten aus.

    Args:
        a: Erste Zahl
        b: Zweite Zahl

    Returns:
        Summe, Differenz, Produkt, Quotient
    """
    # DEINE LÖSUNG HIER
    pass


# Tests
summe, differenz, produkt, quotient = grundrechenarten(10, 2)
assert summe == 12, "Fehler: 10 + 2 sollte 12 sein"
assert differenz == 8, "Fehler: 10 - 2 sollte 8 sein"
assert produkt == 20, "Fehler: 10 * 2 sollte 20 sein"
assert quotient == 5, "Fehler: 10 / 2 sollte 5 sein"
print("✓ Alle Tests bestanden!")

Übung 4.3: Flächenberechnung

python
"""
Übung 4.3: Flächenberechnung
Aufgabe: Schreibe eine Funktion, die die Fläche eines Rechtecks berechnet (Länge × Breite).
Konzept: Multiplikation für praktische Anwendung
"""

def rechteck_flaeche(laenge, breite):
    """
    Berechnet die Fläche eines Rechtecks.

    Args:
        laenge: Länge des Rechtecks
        breite: Breite des Rechtecks

    Returns:
        Fläche (laenge * breite)
    """
    # DEINE LÖSUNG HIER
    pass


# Tests
assert rechteck_flaeche(5, 3) == 15, "Fehler: 5 * 3 sollte 15 sein"
assert rechteck_flaeche(10, 10) == 100, "Fehler: 10 * 10 sollte 100 sein"
assert rechteck_flaeche(7, 2) == 14, "Fehler: 7 * 2 sollte 14 sein"
print("✓ Alle Tests bestanden!")

Übung 4.4: Code Reading (Code lesen)

Aufgabe: Erstelle eine Variablen-Tabelle für den folgenden Code.

python
a = 10
b = 5
summe = a + b
produkt = a * b
differenz = a - b
ZeileCodeabsummeproduktdifferenz
1a = 10?????
2b = 5?????
3summe = a + b?????
4produkt = a * b?????
5differenz = a - b?????

Übung 4.5: Debugging (Fehler finden)

Aufgabe: Der folgende Code sollte die Fläche eines Kreises berechnen, aber das Ergebnis ist falsch. Finde den Fehler.

python
"""
Übung 4.5: Debugging - Kreisfläche
Aufgabe: Die Formel für die Kreisfläche ist A = π × r². Finde den Fehler in der Berechnung.
"""

def kreis_flaeche(radius):
    """Berechnet die Fläche eines Kreises."""
    pi = 3.14
    flaeche = pi * radius * 2
    return flaeche

# Test
print(kreis_flaeche(10))  # Sollte ca. 314 sein

Teil 5: Basisfunktionen (input, print, Typkonvertierung)

Übung 5.1: String zu Integer

python
"""
Übung 5.1: String zu Integer
Aufgabe: Schreibe eine Funktion, die einen String (z.B. "42") in eine Ganzzahl umwandelt.
Konzept: int() Funktion
"""

def string_zu_int(text):
    """
    Konvertiert einen String in eine Ganzzahl.

    Args:
        text: String mit einer Zahl (z.B. "42")

    Returns:
        Die Zahl als Integer
    """
    # DEINE LÖSUNG HIER
    pass


# Tests
assert string_zu_int("42") == 42, "Fehler: '42' sollte 42 sein"
assert string_zu_int("100") == 100, "Fehler: '100' sollte 100 sein"
assert string_zu_int("0") == 0, "Fehler: '0' sollte 0 sein"
print("✓ Alle Tests bestanden!")

Übung 5.2: Integer zu String

python
"""
Übung 5.2: Integer zu String
Aufgabe: Schreibe eine Funktion, die eine Ganzzahl in einen String umwandelt.
Konzept: str() Funktion
"""

def int_zu_string(zahl):
    """
    Konvertiert eine Ganzzahl in einen String.

    Args:
        zahl: Eine Ganzzahl

    Returns:
        Die Zahl als String
    """
    # DEINE LÖSUNG HIER
    pass


# Tests
assert int_zu_string(42) == "42", "Fehler: 42 sollte '42' sein"
assert int_zu_string(100) == "100", "Fehler: 100 sollte '100' sein"
assert int_zu_string(0) == "0", "Fehler: 0 sollte '0' sein"
print("✓ Alle Tests bestanden!")

Übung 5.3: Formatierte Ausgabe

python
"""
Übung 5.3: Formatierte Ausgabe
Aufgabe: Schreibe eine Funktion, die "Ich bin [name] und [alter] Jahre alt." zurückgibt.
Konzept: f-Strings für Formatierung
"""

def formatierte_ausgabe(name, alter):
    """
    Erstellt einen formatierten Satz.

    Args:
        name: Name der Person
        alter: Alter der Person

    Returns:
        String: "Ich bin [name] und [alter] Jahre alt."
    """
    # DEINE LÖSUNG HIER
    pass


# Tests
assert formatierte_ausgabe("Anna", 16) == "Ich bin Anna und 16 Jahre alt.", "Fehler: Format stimmt nicht"
assert formatierte_ausgabe("Max", 20) == "Ich bin Max und 20 Jahre alt.", "Fehler: Format stimmt nicht"
print("✓ Alle Tests bestanden!")

Übung 5.4: Code Reading (Code lesen)

Aufgabe: Lies den folgenden Code und erstelle eine Variablen-Tabelle. Erkläre, was das Programm macht.

python
alter_eingabe = input("Wie alt bist du? ")
alter = int(alter_eingabe)
naechstes_jahr = alter + 1
ausgabe = "Nächstes Jahr bist du " + str(naechstes_jahr) + " Jahre alt."
print(ausgabe)

Fragen:

  1. Was passiert, wenn der Benutzer "16" eingibt?
  2. Welche Typkonvertierungen werden durchgeführt?
  3. Erstelle eine Variablen-Tabelle mit allen Variablen und ihren Werten (wenn Eingabe "16" ist).
VariableTypWert
alter_eingabe??
alter??
naechstes_jahr??
ausgabe??

Übung 5.5: Debugging (Fehler finden)

Aufgabe: Der folgende Code soll das Alter des Benutzers verdoppeln, hat aber einen Fehler.

python
"""
Übung 5.5: Debugging - String-Multiplikation
Aufgabe: Der Code soll das Alter verdoppeln. Was passiert mit Strings bei * 2?
Hinweis: Beobachte den Datentyp von `doppelt` im Debugger.
"""

def alter_verdoppeln():
    """Fragt nach dem Alter und gibt das doppelte aus."""
    alter = input("Wie alt bist du? ")
    doppelt = alter * 2
    print(f"Das Doppelte deines Alters ist {doppelt}")

# Test
alter_verdoppeln()
# Bei Eingabe "16" sollte "Das Doppelte deines Alters ist 32" ausgegeben werden

Teil 6: if/else Bedingungen

Übung 6.1: Einfache if-Bedingung

python
"""
Übung 6.1: Einfache if-Bedingung
Aufgabe: Schreibe eine Funktion, die True zurückgibt wenn die Zahl positiv (> 0) ist, sonst False.
Konzept: if/else
"""

def ist_positiv(zahl):
    """
    Prüft, ob eine Zahl positiv ist.

    Args:
        zahl: Eine Zahl

    Returns:
        True wenn positiv (> 0), sonst False
    """
    # DEINE LÖSUNG HIER
    pass


# Tests
assert ist_positiv(5) == True, "Fehler: 5 ist positiv"
assert ist_positiv(-3) == False, "Fehler: -3 ist nicht positiv"
assert ist_positiv(0) == False, "Fehler: 0 ist nicht positiv"
print("✓ Alle Tests bestanden!")

Übung 6.2: if-elif-else

python
"""
Übung 6.2: if-elif-else
Aufgabe: Schreibe eine Funktion, die "positiv", "negativ" oder "null" zurückgibt.
Konzept: if-elif-else
"""

def zahl_klassifizieren(zahl):
    """
    Klassifiziert eine Zahl.

    Args:
        zahl: Eine Zahl

    Returns:
        "positiv", "negativ" oder "null"
    """
    # DEINE LÖSUNG HIER
    pass


# Tests
assert zahl_klassifizieren(5) == "positiv", "Fehler: 5 ist positiv"
assert zahl_klassifizieren(-3) == "negativ", "Fehler: -3 ist negativ"
assert zahl_klassifizieren(0) == "null", "Fehler: 0 ist null"
print("✓ Alle Tests bestanden!")

Übung 6.3: Vergleich zweier Zahlen

python
"""
Übung 6.3: Vergleich zweier Zahlen
Aufgabe: Schreibe eine Funktion, die die größere von zwei Zahlen zurückgibt.
Konzept: Vergleichsoperatoren und if/else
"""

def groessere_zahl(a, b):
    """
    Gibt die größere von zwei Zahlen zurück.

    Args:
        a: Erste Zahl
        b: Zweite Zahl

    Returns:
        Die größere Zahl
    """
    # DEINE LÖSUNG HIER
    pass


# Tests
assert groessere_zahl(5, 3) == 5, "Fehler: 5 ist größer"
assert groessere_zahl(10, 20) == 20, "Fehler: 20 ist größer"
assert groessere_zahl(7, 7) == 7, "Fehler: Beide gleich, gib 7 zurück"
print("✓ Alle Tests bestanden!")

Übung 6.4: Code Reading (Code lesen)

Aufgabe: Lies den folgenden Code und erkläre, was er macht. Erstelle eine Ablauf-Tabelle.

python
temperatur = 25

if temperatur > 30:
    nachricht = "Es ist heiß!"
elif temperatur > 20:
    nachricht = "Es ist warm."
elif temperatur > 10:
    nachricht = "Es ist kühl."
else:
    nachricht = "Es ist kalt!"

print(nachricht)

Fragen:

  1. Was wird ausgegeben, wenn temperatur = 25?
  2. Was wird ausgegeben, wenn temperatur = 35?
  3. Was wird ausgegeben, wenn temperatur = 5?
  4. Welche Bedingung wird bei temperatur = 25 überprüft und welche Bedingungen werden übersprungen?

Übung 6.5: Debugging (Fehler finden)

Aufgabe: Der folgende Code soll prüfen, ob eine Person volljährig ist (18 Jahre oder älter). Es gibt aber einen logischen Fehler.

python
"""
Übung 6.5: Debugging - Volljährigkeit
Aufgabe: Der Code prüft Volljährigkeit, aber bei alter = 18 stimmt das Ergebnis nicht. 
Hinweis: Welcher Vergleichsoperator ist korrekt: > oder >= ?
"""

def pruefe_volljaehrigkeit(alter):
    """Prüft, ob eine Person volljährig ist."""
    if alter > 18:
        return "volljährig"
    else:
        return "minderjährig"

# Tests
print(pruefe_volljaehrigkeit(20))  # Sollte "volljährig" sein
print(pruefe_volljaehrigkeit(18))  # Sollte "volljährig" sein - aber ist es das?
print(pruefe_volljaehrigkeit(16))  # Sollte "minderjährig" sein

Teil 7: Schleifen (Loops)

Übung 7.1: Einfache for-Schleife

python
"""
Übung 7.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 7.2: Summe mit Schleife

python
"""
Übung 7.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 7.3: Gerade Zahlen zählen

python
"""
Übung 7.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 7.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 7.5: Debugging (Fehler finden)

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

python
"""
Übung 7.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

Teil 8: Funktionen

Übung 8.1: Funktion mit Parameter

python
"""
Übung 8.1: Funktion mit Parameter
Aufgabe: Schreibe eine Funktion, die "Hallo, [name]!" zurückgibt.
Konzept: Funktion mit Parameter
"""

def begruesse(name):
    """
    Erstellt eine Begrüßung.

    Args:
        name: Name der Person

    Returns:
        "Hallo, [name]!"
    """
    # DEINE LÖSUNG HIER
    pass


# Tests
assert begruesse("Anna") == "Hallo, Anna!", "Fehler: Begrüßung falsch"
assert begruesse("Max") == "Hallo, Max!", "Fehler: Begrüßung falsch"
print("✓ Alle Tests bestanden!")

Übung 8.2: Funktion mit mehreren Parametern

python
"""
Übung 8.2: Funktion mit mehreren Parametern
Aufgabe: Schreibe eine Funktion, die den Durchschnitt von zwei Zahlen berechnet: (a + b) / 2
Konzept: Funktion mit mehreren Parametern
"""

def durchschnitt_zwei(a, b):
    """
    Berechnet den Durchschnitt von zwei Zahlen.

    Args:
        a: Erste Zahl
        b: Zweite Zahl

    Returns:
        Durchschnitt (a + b) / 2
    """
    # DEINE LÖSUNG HIER
    pass


# Tests
assert durchschnitt_zwei(4, 6) == 5.0, "Fehler: (4+6)/2 = 5"
assert durchschnitt_zwei(10, 20) == 15.0, "Fehler: (10+20)/2 = 15"
assert durchschnitt_zwei(0, 10) == 5.0, "Fehler: (0+10)/2 = 5"
print("✓ Alle Tests bestanden!")

Übung 8.3: Funktion ruft Funktion auf

python
"""
Übung 8.3: Funktion ruft Funktion auf
Aufgabe: Nutze die verdopple()-Funktion, um (zahl * 2) + 10 zu berechnen.
Konzept: Funktionsaufruf innerhalb einer Funktion
"""

def verdopple(zahl):
    """Verdoppelt eine Zahl."""
    return zahl * 2

def verdopple_und_addiere_zehn(zahl):
    """
    Verdoppelt eine Zahl und addiert 10.

    Args:
        zahl: Eine Zahl

    Returns:
        (zahl * 2) + 10
    """
    # DEINE LÖSUNG HIER - nutze verdopple()!
    pass


# Tests
assert verdopple_und_addiere_zehn(5) == 20, "Fehler: 5*2+10 = 20"
assert verdopple_und_addiere_zehn(0) == 10, "Fehler: 0*2+10 = 10"
assert verdopple_und_addiere_zehn(3) == 16, "Fehler: 3*2+10 = 16"
print("✓ Alle Tests bestanden!")

Übung 8.4: Code Reading (Code lesen)

Aufgabe: Lies den folgenden Code und erkläre, was passiert. Verfolge den Aufruf-Stack (Call Stack).

python
def berechne_quadrat(zahl):
    """Berechnet das Quadrat einer Zahl."""
    ergebnis = zahl * zahl
    return ergebnis

def berechne_summe_quadrate(a, b):
    """Berechnet die Summe der Quadrate von a und b."""
    quadrat_a = berechne_quadrat(a)
    quadrat_b = berechne_quadrat(b)
    summe = quadrat_a + quadrat_b
    return summe

resultat = berechne_summe_quadrate(3, 4)
print(resultat)

Fragen:

  1. Was wird ausgegeben?
  2. Erkläre den Ablauf: Welche Funktion ruft welche Funktion auf?
  3. Erstelle eine Tabelle für die Variablen in berechne_summe_quadrate(3, 4):
VariableWert
a?
b?
quadrat_a?
quadrat_b?
summe?

Übung 8.5: Debugging (Fehler finden)

Aufgabe: Der folgende Code soll die Fläche eines Rechtecks berechnen, aber das Ergebnis ist immer falsch.

python
"""
Übung 8.5: Debugging - Falsche Formel
Aufgabe: Die Fläche eines Rechtecks ist Länge × Breite. Finde den Fehler!
Hinweis: Setze Breakpoints in beiden Funktionen und beobachte die Variablen.
"""

def berechne_flaeche(laenge, breite):
    """Berechnet die Fläche eines Rechtecks."""
    flaeche = laenge + breite
    return flaeche

def flaeche_mit_rahmen(laenge, breite):
    """Berechnet Fläche und gibt sie formatiert aus."""
    ergebnis = berechne_flaeche(laenge, breite)
    return f"Die Fläche ist {ergebnis} m²"

# Test
print(flaeche_mit_rahmen(5, 3))  # Sollte "Die Fläche ist 15 m²" sein

Teil 9: Kombination aller Konzepte

Übung 9.1: Temperaturumrechner

python
"""
Übung 9.1: Temperaturumrechner
Aufgabe: Rechne Celsius in Fahrenheit um mit der Formel: F = C * 9/5 + 32
Konzepte: Funktion, Parameter, Arithmetik, Rückgabewert
"""

def celsius_zu_fahrenheit(celsius):
    """
    Rechnet Celsius in Fahrenheit um.
    Formel: F = C * 9/5 + 32

    Args:
        celsius: Temperatur in Celsius

    Returns:
        Temperatur in Fahrenheit
    """
    # DEINE LÖSUNG HIER
    pass


# Tests
assert celsius_zu_fahrenheit(0) == 32, "Fehler: 0°C = 32°F"
assert celsius_zu_fahrenheit(100) == 212, "Fehler: 100°C = 212°F"
assert abs(celsius_zu_fahrenheit(37) - 98.6) < 0.1, "Fehler: 37°C ≈ 98.6°F"
print("✓ Alle Tests bestanden!")

Übung 9.2: Notenbewertung

python
"""
Übung 9.2: Notenbewertung
Aufgabe: Prüfe ob eine Schweizer Note >= 4.0 ist und gib "bestanden" oder "nicht bestanden" zurück.
Konzepte: Funktion, Parameter, if/else, Vergleich
"""

def note_pruefen(note):
    """
    Prüft, ob eine Note ausreichend ist (>= 4.0 in der Schweiz).

    Args:
        note: Schweizer Note (1.0 bis 6.0)

    Returns:
        "bestanden" oder "nicht bestanden"
    """
    # DEINE LÖSUNG HIER
    pass


# Tests
assert note_pruefen(5.5) == "bestanden", "Fehler: 5.5 ist bestanden"
assert note_pruefen(4.0) == "bestanden", "Fehler: 4.0 ist bestanden"
assert note_pruefen(3.9) == "nicht bestanden", "Fehler: 3.9 ist nicht bestanden"
assert note_pruefen(6.0) == "bestanden", "Fehler: 6.0 ist bestanden"
print("✓ Alle Tests bestanden!")

Übung 9.3: Einkaufspreis berechnen

python
"""
Übung 9.3: Einkaufspreis berechnen
Aufgabe: Berechne den Gesamtpreis für Hefte (2.50 CHF) und Stifte (1.20 CHF).
Konzepte: Funktion, mehrere Parameter, Arithmetik, Variablen
"""

def einkaufspreis(anzahl_hefte, anzahl_stifte):
    """
    Berechnet den Gesamtpreis eines Einkaufs.

    Args:
        anzahl_hefte: Anzahl der Hefte (à 2.50 CHF)
        anzahl_stifte: Anzahl der Stifte (à 1.20 CHF)

    Returns:
        Gesamtpreis in CHF
    """
    # DEINE LÖSUNG HIER
    pass


# Tests
assert einkaufspreis(2, 3) == 8.60, "Fehler: 2*2.50 + 3*1.20 = 8.60"
assert einkaufspreis(1, 0) == 2.50, "Fehler: 1 Heft = 2.50"
assert einkaufspreis(0, 5) == 6.00, "Fehler: 5 Stifte = 6.00"
print("✓ Alle Tests bestanden!")

Übung 9.4: Zahlen filtern

python
"""
Übung 9.4: Zahlen filtern
Aufgabe: Schreibe eine Funktion, die nur positive Zahlen (> 0) aus einer Liste behält.
Konzepte: Funktion, Liste, Schleife, if-Bedingung
"""

def nur_positive(zahlen):
    """
    Filtert positive Zahlen aus einer Liste.

    Args:
        zahlen: Liste von Zahlen

    Returns:
        Neue Liste nur mit positiven Zahlen
    """
    # DEINE LÖSUNG HIER
    pass


# Tests
assert nur_positive([1, -2, 3, -4, 5]) == [1, 3, 5], "Fehler: Nur positive behalten"
assert nur_positive([-1, -2, -3]) == [], "Fehler: Keine positiven"
assert nur_positive([1, 2, 3]) == [1, 2, 3], "Fehler: Alle positiv"
print("✓ Alle Tests bestanden!")

Übung 9.5: Multiplikationstabelle

python
"""
Übung 9.5: Multiplikationstabelle
Aufgabe: Erstelle eine Liste [zahl*1, zahl*2, ..., zahl*10] mit einer Schleife.
Konzepte: Funktion, Schleife, Liste, Arithmetik
"""

def multiplikationstabelle(zahl):
    """
    Erstellt Multiplikationstabelle von 1 bis 10.

    Args:
        zahl: Die Zahl für die Tabelle

    Returns:
        Liste mit [zahl*1, zahl*2, ..., zahl*10]
    """
    # DEINE LÖSUNG HIER
    pass


# Tests
assert multiplikationstabelle(5) == [5, 10, 15, 20, 25, 30, 35, 40, 45, 50], "Fehler: 5er Reihe"
assert multiplikationstabelle(1) == [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "Fehler: 1er Reihe"
print("✓ Alle Tests bestanden!")

Übung 9.6: Code Reading (Code lesen)

Aufgabe: Lies den folgenden Code und erkläre, was er macht. Erstelle eine Ablauf-Tabelle für den gesamten Programmablauf.

python
def bewerte_pruefung(punkte, max_punkte):
    """Bewertet eine Prüfung nach Prozent und gibt eine Note zurück."""
    prozent = (punkte / max_punkte) * 100

    if prozent >= 90:
        note = 6.0
    elif prozent >= 80:
        note = 5.5
    elif prozent >= 70:
        note = 5.0
    elif prozent >= 60:
        note = 4.5
    elif prozent >= 50:
        note = 4.0
    else:
        note = 3.5

    return note

# Mehrere Schüler bewerten
schueler = ["Anna", "Ben", "Clara"]
punkte_liste = [45, 38, 42]
max_punkte = 50

for i in range(len(schueler)):
    note = bewerte_pruefung(punkte_liste[i], max_punkte)
    print(f"{schueler[i]} hat {punkte_liste[i]} Punkte und die Note {note}")

Fragen:

  1. Was macht die Funktion bewerte_pruefung()?
  2. Wie viele Schüler werden bewertet?
  3. Erstelle eine Tabelle für die Schleife:
Iterationischueler[i]punkte_liste[i]prozentnote
1?????
2?????
3?????
  1. Welche Konzepte werden kombiniert? (Funktionen, Schleifen, Bedingungen, Listen, etc.)

Übung 9.7: Debugging (Fehler finden)

Aufgabe: Der folgende Code soll die Durchschnittsnote berechnen und zählen, wie viele Schüler bestanden haben (Note >= 4.0). Es gibt einen Fehler!

python
"""
Übung 9.7: Debugging - Vergleichsoperator
Aufgabe: Die Note 4.0 sollte als "bestanden" zählen, aber der Code zählt sie nicht.
Hinweis: Was ist der Unterschied zwischen > und >= ?
"""

def analysiere_noten(noten):
    """Analysiert Noten einer Klasse."""
    summe = 0
    bestanden = 0

    for note in noten:
        summe = summe + note
        if note > 4.0:
            bestanden = bestanden + 1

    durchschnitt = summe / len(noten)

    return durchschnitt, bestanden

# Test
klassen_noten = [5.5, 4.0, 3.5, 5.0, 4.5]
durchschnitt, anzahl_bestanden = analysiere_noten(klassen_noten)

print(f"Durchschnitt: {durchschnitt}")
print(f"Bestanden: {anzahl_bestanden} von {len(klassen_noten)}")
# Erwartet: Durchschnitt: 4.5, Bestanden: 4 von 5 (Note 4.0 sollte auch als bestanden zählen!)

Bonus-Übungen (Fortgeschritten)

Die folgenden Übungen sind anspruchsvoller und kombinieren mehrere Konzepte. Versuche sie erst, wenn du die Grundlagen beherrschst!

Bonus 1: Gerade oder ungerade

python
"""
Bonus 1: Gerade oder ungerade
Aufgabe: Prüfe mit dem Modulo-Operator %, ob eine Zahl gerade ist (durch 2 teilbar).
"""

def ist_gerade(zahl):
    """Prüft, ob eine Zahl gerade ist."""
    # DEINE LÖSUNG HIER
    pass

# Tests
assert ist_gerade(4) == True, "Fehler: 4 ist gerade"
assert ist_gerade(7) == False, "Fehler: 7 ist ungerade"
assert ist_gerade(0) == True, "Fehler: 0 ist gerade"
print("✓ Alle Tests bestanden!")

Bonus 2: Maximum von drei Zahlen

python
"""
Bonus 2: Maximum von drei Zahlen
Aufgabe: Finde das Maximum von drei Zahlen mit if/elif/else oder max().
"""

def maximum_von_drei(a, b, c):
    """Findet das Maximum von drei Zahlen."""
    # DEINE LÖSUNG HIER
    pass

# Tests
assert maximum_von_drei(5, 2, 8) == 8, "Fehler: Maximum sollte 8 sein"
assert maximum_von_drei(10, 10, 5) == 10, "Fehler: Maximum sollte 10 sein"
print("✓ Alle Tests bestanden!")

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 7: String umkehren

python
"""
Bonus 7: String umkehren
Aufgabe: Kehre einen String um. Tipp: Verwende Slicing mit [::-1]
"""

def string_umkehren(text):
    """Kehrt einen String um. Beispiel: "Hallo" → "ollaH" """
    # DEINE LÖSUNG HIER
    pass

# Tests
assert string_umkehren("Hallo") == "ollaH", "Fehler: 'ollaH'"
assert string_umkehren("Python") == "nohtyP", "Fehler: 'nohtyP'"
print("✓ Alle Tests bestanden!")

Bonus 8: Wörter zählen

python
"""
Bonus 8: Wörter zählen
Aufgabe: Zähle die Anzahl der Wörter in einem String. Tipp: Verwende .split()
"""

def woerter_zaehlen(text):
    """Zählt die Anzahl der Wörter in einem String."""
    # DEINE LÖSUNG HIER
    pass

# Tests
assert woerter_zaehlen("Hallo Welt") == 2, "Fehler: 2 Wörter"
assert woerter_zaehlen("Python ist toll") == 3, "Fehler: 3 Wörter"
print("✓ Alle Tests bestanden!")

Bonus 9: Palindrom-Checker

python
"""
Bonus 9: Palindrom-Checker
Aufgabe: Prüfe, ob ein Wort ein Palindrom ist (vorwärts = rückwärts). Beispiele: "anna", "rentner"
"""

def ist_palindrom(wort):
    """Prüft, ob ein Wort ein Palindrom ist."""
    # DEINE LÖSUNG HIER
    pass

# Tests
assert ist_palindrom("anna") == True, "Fehler: 'anna' ist Palindrom"
assert ist_palindrom("rentner") == True, "Fehler: 'rentner' ist Palindrom"
assert ist_palindrom("hallo") == False, "Fehler: 'hallo' ist kein Palindrom"
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 11: FizzBuzz

python
"""
Bonus 11: FizzBuzz
Aufgabe: Implementiere das FizzBuzz-Spiel:
- Durch 3 teilbar → "Fizz"
- Durch 5 teilbar → "Buzz"  
- Durch 3 UND 5 teilbar → "FizzBuzz"
- Sonst → Zahl als String
"""

def fizzbuzz(n):
    """FizzBuzz-Funktion."""
    # DEINE LÖSUNG HIER
    pass

# Tests
assert fizzbuzz(3) == "Fizz", "Fehler: 'Fizz'"
assert fizzbuzz(5) == "Buzz", "Fehler: 'Buzz'"
assert fizzbuzz(15) == "FizzBuzz", "Fehler: 'FizzBuzz'"
assert fizzbuzz(7) == "7", "Fehler: '7'"
print("✓ Alle Tests bestanden!")

Bonus 12: Häufigkeiten zählen

python
"""
Bonus 12: Häufigkeiten zählen
Aufgabe: Zähle, wie oft jedes Element in einer Liste vorkommt.
Beispiel: ["a", "b", "a"] → {"a": 2, "b": 1}
"""

def haeufigkeit_zaehlen(liste):
    """Zählt die Häufigkeit jedes Elements."""
    # DEINE LÖSUNG HIER
    pass

# Tests
assert haeufigkeit_zaehlen(["a", "b", "a"]) == {"a": 2, "b": 1}, "Fehler"
assert haeufigkeit_zaehlen([]) == {}, "Fehler: Leeres Dict"
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!")

Bonus 16: Dictionaries zusammenführen

python
"""
Bonus 16: Dictionaries zusammenführen
Aufgabe: Führe zwei Dictionaries zusammen. Bei Duplikaten: Wert aus dict2 verwenden.
"""

def dictionaries_zusammenfuehren(dict1, dict2):
    """Führt zwei Dictionaries zusammen."""
    # DEINE LÖSUNG HIER
    pass

# Tests
assert dictionaries_zusammenfuehren({"a": 1}, {"b": 2}) == {"a": 1, "b": 2}, "Fehler"
assert dictionaries_zusammenfuehren({"a": 1}, {"a": 2}) == {"a": 2}, "Fehler: Überschreiben"
print("✓ Alle Tests bestanden!")

Bonus 17: Anagramm-Checker

python
"""
Bonus 17: Anagramm-Checker
Aufgabe: Prüfe, ob zwei Wörter Anagramme sind (gleiche Buchstaben, andere Reihenfolge).
Beispiel: "listen" und "silent" sind Anagramme.
"""

def sind_anagramme(wort1, wort2):
    """Prüft, ob zwei Wörter Anagramme sind."""
    # DEINE LÖSUNG HIER
    pass

# Tests
assert sind_anagramme("listen", "silent") == True, "Fehler: Anagramme"
assert sind_anagramme("hello", "world") == False, "Fehler: Keine Anagramme"
print("✓ Alle Tests bestanden!")

Bonus 18: Caesar-Verschlüsselung

python
"""
Bonus 18: Caesar-Verschlüsselung
Aufgabe: Verschiebe jeden Buchstaben um n Positionen im Alphabet.
Beispiel: "abc" mit verschiebung=1 → "bcd"
"""

def caesar_verschluesseln(text, verschiebung):
    """Caesar-Verschlüsselung für Kleinbuchstaben."""
    # DEINE LÖSUNG HIER
    pass

# Tests
assert caesar_verschluesseln("abc", 1) == "bcd", "Fehler: 'bcd'"
assert caesar_verschluesseln("xyz", 3) == "abc", "Fehler: Wrap-around"
print("✓ Alle Tests bestanden!")

Bonus 19: Stern-Pyramide

python
"""
Bonus 19: Stern-Pyramide
Aufgabe: Erstelle eine Stern-Pyramide als String mit Newlines.
Beispiel für hoehe=3:
*
**
***
"""

def stern_pyramide(hoehe):
    """Erstellt eine Stern-Pyramide."""
    # DEINE LÖSUNG HIER
    pass

# Tests
assert stern_pyramide(3) == "*\n**\n***", "Fehler: Pyramide"
assert stern_pyramide(1) == "*", "Fehler: Single star"
print("✓ Alle Tests bestanden!")

Bonus 20: Taschenrechner

python
"""
Bonus 20: Taschenrechner
Aufgabe: Einfacher Taschenrechner für +, -, *, /
Bei Division durch 0 oder ungültiger Operation: "Fehler" zurückgeben.
"""

def rechne(zahl1, zahl2, operation):
    """Einfacher Taschenrechner."""
    # DEINE LÖSUNG HIER
    pass

# Tests
assert rechne(10, 5, "+") == 15, "Fehler: 10+5=15"
assert rechne(10, 5, "-") == 5, "Fehler: 10-5=5"
assert rechne(10, 5, "*") == 50, "Fehler: 10*5=50"
assert rechne(10, 5, "/") == 2, "Fehler: 10/5=2"
assert rechne(10, 0, "/") == "Fehler", "Fehler: Division durch 0"
print("✓ Alle Tests bestanden!")

Turtle Graphics Übungen

Die folgenden Übungen verwenden das turtle-Modul für grafische Ausgaben. Diese Übungen haben keine automatischen Tests - führe den Code aus und überprüfe visuell!

Turtle 1: Quadrat

python
"""
Turtle 1: Quadrat
Aufgabe: Zeichne ein Quadrat mit Seitenlänge 100.
Tipp: 4 Seiten, jeweils 90° Drehung
"""
from turtle import *

# DEIN CODE HIER

done()

Turtle 2: Dreieck

python
"""
Turtle 2: Dreieck
Aufgabe: Zeichne ein gleichseitiges Dreieck.
Tipp: 3 Seiten, jeweils 120° Drehung
"""
from turtle import *

# DEIN CODE HIER

done()

Turtle 3: Stern

python
"""
Turtle 3: Stern
Aufgabe: Zeichne einen 5-zackigen Stern.
Tipp: 5 Linien, jeweils 144° Drehung
"""
from turtle import *

# DEIN CODE HIER

done()

Turtle 4: Haus

python
"""
Turtle 4: Haus
Aufgabe: Zeichne ein Haus mit Mauern, Dach, Tür und Fenster.
"""
from turtle import *

# DEIN CODE HIER

done()

Turtle 5: Spirale

python
"""
Turtle 5: Spirale
Aufgabe: Zeichne eine wachsende Spirale (100 Iterationen).
Tipp: Bei jeder Iteration die Schrittgröße erhöhen.
"""
from turtle import *

groesse = 5
wachstum = 2

# DEIN CODE HIER

done()

Glückwunsch

Du hast alle Grundlagenübungen abgeschlossen! 🎉

Vergleiche deine Lösungen mit den Musterlösungen und schaue, wie du die Aufgaben anders oder effizienter lösen könntest.

Nächste Schritte

  • Versuche die Bonus-Übungen
  • Experimentiere mit den Turtle Graphics Übungen
  • Kombiniere verschiedene Konzepte in eigenen Programmen
  • Lerne über Listen, Dictionaries und fortgeschrittene Themen im Theorie-Skript

Informatik & ICT Unterricht Neufeld