Skip to content

Repetitionsübung 1

Die Aufgaben in der folgenden Datei sollen euch bei der Repetition und der Selbst-Einschätzung helfen. Bearbeite die Aufgaben in Ruhe und schaue die Musterlösungen erst an, wenn du die Aufgabe selbst gelöst hast.


Aufgabe 1: Farbe und Grösse abfragen

Schreibe ein Programm, das den Benutzer fragt, wie gross ein Quadrat sein soll und welche Farbe es haben soll. Zeichne das Quadrat danach mit der Turtle in der gewünschten Farbe und Grösse.

  • Lies die Grösse mit input() ein und wandle sie in eine Zahl um.
  • Lies die Farbe mit input() ein.
  • Zeichne das Quadrat mit einer for-Schleife (4 Seiten, je 90° drehen).
  • Gib nach dem Zeichnen in der Konsole aus, was gezeichnet wurde – z.B.: Quadrat mit Seitenlänge 120 in rot
Hinweis 1: Eingaben einlesen und umwandeln

input() gibt immer einen Text zurück. Für eine Zahl musst du den Text mit int() umwandeln:

python
groesse = int(input("Wie gross soll das Quadrat sein? "))
farbe = input("Welche Farbe? ")
Hinweis 2: Turtle vorbereiten und Quadrat zeichnen
python
import turtle

t = turtle.Turtle()
t.color(farbe)

for i in range(4):
    t.forward(groesse)
    t.right(90)

Aufgabe 2: Wachsende Quadrate

Zeichne 5 Quadrate mit einer for-Schleife. Jedes Quadrat soll grösser sein als das vorherige und leicht gedreht, damit alle sichtbar sind.

  • Starte mit einer Seitenlänge von 40.
  • Erhöhe die Seitenlänge nach jedem Quadrat um 40.
  • Drehe die Turtle nach jedem Quadrat um 15°.
  • Gib für jedes Quadrat per f-String aus: Quadrat 1: Seitenlänge 40, Quadrat 2: Seitenlänge 80, usw.
Hinweis 1: Variable ausserhalb der Schleife anlegen

Lege die Seitenlänge vor der Schleife an und verändere sie am Ende jedes Durchlaufs:

python
seite = 40
for i in range(5):
    # Quadrat zeichnen ...
    t.right(15)
    seite = seite + 40
Hinweis 2: Quadratnummer im f-String

Die Schleifenvariable i beginnt bei 0. Um die Nummer als 1, 2, 3 ... auszugeben, rechne i + 1:

python
print(f"Quadrat {i + 1}: Seitenlänge {seite}")

Aufgabe 3: Farbwechsel mit if/else

Zeichne 6 Quadrate in einer Schleife. Die Farbe soll nach folgendem Muster wechseln:

  • Quadrate 1, 3, 5 (ungerade Nummer) → "orange"
  • Quadrate 2, 4, 6 (gerade Nummer) → "purple"

Alle Quadrate haben die gleiche Seitenlänge von 80. Drehe die Turtle nach jedem Quadrat um 25°. Gib für jedes Quadrat per f-String aus, welche Farbe verwendet wurde.

Hinweis 1: Gerade/ungerade mit Modulo

Der %-Operator gibt den Rest einer Division zurück. Damit kannst du prüfen, ob eine Zahl gerade oder ungerade ist:

python
if i % 2 == 0:
    # i ist gerade (0, 2, 4, ...)
else:
    # i ist ungerade (1, 3, 5, ...)

Achtung: i beginnt bei 0. Quadrat Nummer 1 hat also i = 0.

Hinweis 2: Farbe in eine Variable speichern

Speichere die gewählte Farbe in einer Variable, damit du sie sowohl für t.color() als auch für print() verwenden kannst:

python
if i % 2 == 0:
    farbe = "orange"
else:
    farbe = "purple"

t.color(farbe)
print(f"Farbe: {farbe}")

Aufgabe 4: Sternenmuster

Zeichne ein Sternenmuster: Die Turtle soll 36 Mal einen Strich zeichnen und sich danach um 170° drehen. Frage den Benutzer vorher nach:

  1. Der Länge jedes Strichs (als Zahl)
  2. Der Farbe des Sterns

Gib nach dem Zeichnen aus: Stern mit 36 Zacken, Länge <laenge>, Farbe <farbe>

Hinweis 1: Schleife für den Stern
python
for i in range(36):
    t.forward(laenge)
    t.right(170)

Der Winkel 170° erzeugt ein schönes Sternmuster. Probiere auch andere Winkel aus!

Hinweis 2: Eingaben und Ausgabe
python
laenge = int(input("Wie lang soll jeder Strich sein? "))
farbe = input("Welche Farbe? ")

t.color(farbe)
# ... Schleife ...
print(f"Stern mit 36 Zacken, Länge {laenge}, Farbe {farbe}")

Aufgabe 5: Dreieck oder Quadrat?

Frage den Benutzer, ob er ein Dreieck oder ein Quadrat zeichnen möchte. Frage ausserdem nach der Seitenlänge und der Farbe. Zeichne dann die gewünschte Form.

  • Ein Dreieck hat 3 Seiten und dreht sich nach jeder Seite um 120°.
  • Ein Quadrat hat 4 Seiten und dreht sich nach jeder Seite um 90°.
  • Falls der Benutzer weder "dreieck" noch "quadrat" eingibt, gib aus: Unbekannte Form! und zeichne nichts.
Hinweis 1: if/elif/else für die Formwahl
python
form = input("Dreieck oder Quadrat? ").lower()

if form == "dreieck":
    # Dreieck zeichnen
elif form == "quadrat":
    # Quadrat zeichnen
else:
    print("Unbekannte Form!")

.lower() wandelt die Eingabe in Kleinbuchstaben um, damit z.B. "Dreieck" und "dreieck" beide funktionieren.

Hinweis 2: Anzahl Seiten und Winkel

Speichere Anzahl Seiten und Drehwinkel in Variablen, dann kannst du eine einzige Schleife für beide Formen verwenden:

python
if form == "dreieck":
    seiten = 3
    winkel = 120
elif form == "quadrat":
    seiten = 4
    winkel = 90

for i in range(seiten):
    t.forward(laenge)
    t.right(winkel)

Aufgabe 6: Treppenform

Zeichne eine Treppe mit 5 Stufen. Jede Stufe besteht aus einem waagrechten und einem senkrechten Strich. Die erste Stufe ist 20 Schritte breit und hoch, die zweite 40, die dritte 60 usw. – jede Stufe ist also 20 Schritte breiter und höher als die vorherige.

Gib für jede Stufe aus: Stufe 1: Breite 20, Stufe 2: Breite 40, usw.

Frage den Benutzer vorher nach der Farbe der Treppe.

Hinweis 1: Eine Stufe zeichnen

Eine Stufe besteht aus einem Strich nach rechts (0°) und einem Strich nach oben. Da die Turtle zu Beginn nach rechts schaut, dreht sie sich für den senkrechten Teil um 90° nach links:

python
t.forward(breite)   # waagrecht
t.left(90)
t.forward(breite)   # senkrecht
t.right(90)         # wieder in Ausgangsrichtung
Hinweis 2: Breite pro Stufe erhöhen

Starte mit breite = 20 und erhöhe sie nach jeder Stufe um 20:

python
breite = 20
for i in range(5):
    # Stufe zeichnen ...
    print(f"Stufe {i + 1}: Breite {breite}")
    breite = breite + 20

Code lesen

Aufgabe L1: Was gibt das Programm aus?

Lies den folgenden Code ohne ihn auszuführen. Schreibe auf, was in der Konsole ausgegeben wird – Zeile für Zeile.

python
farbe = "rot"
seite = 20

for i in range(4):
    seite = seite + 10
    print(f"Durchlauf {i}: Seite = {seite}, Farbe = {farbe}")

farbe = "blau"
print(f"Fertig! Farbe ist jetzt {farbe}, Seite ist {seite}")

Trage die Werte in diese Tabelle ein:

Durchlauf (i)seite vor Zeile 5seite nach Zeile 5Ausgabe
020??
1???
2???
3???

Was steht nach der Schleife in der letzten Zeile?

Hinweis: Wie tracke ich Variablen?

Geh den Code Schritt für Schritt durch. Schreibe dir den aktuellen Wert jeder Variable auf, bevor du zur nächsten Zeile weitergehst. Die Variable seite ändert sich in jedem Durchlauf – der neue Wert hängt vom alten ab.


Aufgabe L2: Was zeichnet die Turtle?

Lies den folgenden Code und beschreibe in Worten, was die Turtle zeichnet. Versuche dir das Ergebnis vorzustellen, bevor du den Code ausführst.

python
from turtle import *

groesse = 80

for i in range(6):
    if i % 2 == 0:
        color("red")
    else:
        color("blue")

    forward(groesse)
    right(60)

Beantworte folgende Fragen:

  1. Wie oft läuft die Schleife?
  2. Welche Farbe hat der erste Strich (wenn i = 0)?
  3. Welche Farbe hat der zweite Strich (wenn i = 1)?
  4. Um wie viel Grad dreht die Turtle insgesamt? Was für eine Form entsteht?
Hinweis: Drehwinkel und Form

Wenn die Turtle sich insgesamt um 360° dreht, endet sie wieder in der Ausgangsrichtung. Überlege: 6 Drehungen à 60° – wie viel ist das zusammen?


Aufgabe L3: Variablen verfolgen

Lies den folgenden Code und fülle die Tabelle aus, ohne das Programm zu starten.

python
x = 10
y = 3
ergebnis = 0

for i in range(4):
    ergebnis = ergebnis + x
    x = x - y
    print(f"i={i}: x={x}, ergebnis={ergebnis}")
iergebnis (vor Zeile 5)ergebnis (nach Zeile 5)x (nach Zeile 6)Ausgabe
00???
1????
2????
3????
Hinweis: Reihenfolge beachten

Zeile 5 kommt vor Zeile 6. Das bedeutet: ergebnis wird mit dem alten Wert von x berechnet, bevor x verändert wird. Führe die Zeilen in der richtigen Reihenfolge durch.


Fehler finden

Aufgabe F1: Drei Fehler im Quadrat-Programm

Der folgende Code soll ein farbiges Quadrat zeichnen. Er enthält 3 Fehler. Finde und korrigiere alle drei.

python
from turtle import *

groesse = int(input("Grösse? "))
farbe = input("Farbe? ")

color(farbe)

for i in range(4)
    forward(groesse)
        right(90)

print(f"Fertig! Seitenlänge war {groesse}, Farbe war {couleur}")
Hinweis: Wo suchen?

Schau dir diese drei Bereiche genau an:

  • Den Schleifenkopf (for ...)
  • Die Einrückung im Schleifenrumpf
  • Die Variable im print-Statement am Ende

Aufgabe F2: Drei Fehler im Treppenprogramm

Der folgende Code soll eine wachsende Treppe mit 5 Stufen zeichnen. Er enthält 3 Fehler. Finde und korrigiere alle drei.

python
from turtle import *

color("green")
breite = 0

for i in range(4):
    print(f"Stufe {i + 1}: Breite {breite}")

    forward(breite)
    left(90)
    forward(hoehe)
    right(90)

    breite = breite + 20
Hinweis: Was passiert beim ersten Durchlauf?

Führe den Code im Kopf aus. Was ist der Wert von breite im ersten Durchlauf (i = 0)? Ergibt das für eine Treppe Sinn?

Schau dir danach an, ob alle Variablennamen korrekt geschrieben sind und ob die Schleife die richtige Anzahl Durchläufe macht.



Musterlösungen

Erst selbst versuchen!

Schaue dir die Musterlösungen erst an, nachdem du die Aufgabe selbst gelöst hast.

Musterlösung Aufgabe 1

Lösung anzeigen
python
from turtle import *

# Benutzer nach Grösse und Farbe fragen
groesse = int(input("Wie gross soll das Quadrat sein? "))
farbe = input("Welche Farbe? ")

# Farbe setzen
color(farbe)

# Quadrat zeichnen: 4 Seiten, nach jeder Seite 90° drehen
for i in range(4):
    forward(groesse)
    right(90)

# Ergebnis in der Konsole ausgeben
print(f"Quadrat mit Seitenlänge {groesse} in {farbe}")

Musterlösung Aufgabe 2

Lösung anzeigen
python
from turtle import *

# Seitenlänge startet bei 40
seite = 40

for i in range(5):
    # Quadratnummer ausgeben (i beginnt bei 0, daher i+1)
    print(f"Quadrat {i + 1}: Seitenlänge {seite}")

    # Quadrat zeichnen
    for j in range(4):
        forward(seite)
        right(90)

    # Turtle drehen, damit das nächste Quadrat sichtbar ist
    right(15)

    # Seitenlänge für das nächste Quadrat erhöhen
    seite = seite + 40

Musterlösung Aufgabe 3

Lösung anzeigen
python
from turtle import *

for i in range(6):
    # Farbe je nach geradem oder ungeradem Index wählen
    # i = 0, 2, 4 → orange (Quadrat 1, 3, 5)
    # i = 1, 3, 5 → purple (Quadrat 2, 4, 6)
    if i % 2 == 0:
        farbe = "orange"
    else:
        farbe = "purple"

    color(farbe)
    print(f"Quadrat {i + 1}: Farbe {farbe}")

    # Quadrat zeichnen
    for j in range(4):
        forward(80)
        right(90)

    # Turtle drehen für das nächste Quadrat
    right(25)

Musterlösung Aufgabe 4

Lösung anzeigen
python
from turtle import *

# Benutzer nach Länge und Farbe fragen
laenge = int(input("Wie lang soll jeder Strich sein? "))
farbe = input("Welche Farbe? ")

color(farbe)

# 36 Striche zeichnen, je 170° drehen → ergibt ein Sternmuster
for i in range(36):
    forward(laenge)
    right(170)

print(f"Stern mit 36 Zacken, Länge {laenge}, Farbe {farbe}")

Musterlösung Aufgabe 5

Lösung anzeigen
python
from turtle import *

# Eingaben abfragen
form = input("Dreieck oder Quadrat? ").lower()
laenge = int(input("Seitenlänge? "))
farbe = input("Farbe? ")

color(farbe)

# Anzahl Seiten und Drehwinkel je nach Form festlegen
if form == "dreieck":
    seiten = 3
    winkel = 120
elif form == "quadrat":
    seiten = 4
    winkel = 90
else:
    # Unbekannte Eingabe: Programm beenden
    print("Unbekannte Form!")
    seiten = 0
    winkel = 0

# Form zeichnen (bei unbekannter Form ist seiten=0, Schleife läuft nicht)
for i in range(seiten):
    forward(laenge)
    right(winkel)

Musterlösung Aufgabe 6

Lösung anzeigen
python
from turtle import *

# Farbe abfragen
farbe = input("Welche Farbe soll die Treppe haben? ")
color(farbe)

# Stufenbreite startet bei 20
breite = 20

for i in range(5):
    print(f"Stufe {i + 1}: Breite {breite}")

    # Waagrechter Strich (nach rechts)
    forward(breite)

    # Senkrechter Strich (nach oben)
    left(90)
    forward(breite)
    right(90)

    # Breite für die nächste Stufe erhöhen
    breite = breite + 20

Musterlösung L1

Lösung anzeigen

Ausgabe der Schleife:

iseite vor Zeile 5seite nach Zeile 5Ausgabe
02030Durchlauf 0: Seite = 30, Farbe = rot
13040Durchlauf 1: Seite = 40, Farbe = rot
24050Durchlauf 2: Seite = 50, Farbe = rot
35060Durchlauf 3: Seite = 60, Farbe = rot

Letzte Zeile: Fertig! Farbe ist jetzt blau, Seite ist 60

seite wird in jeder Iteration um 10 erhöht. Nach 4 Durchläufen ist sie also 20 + 4×10 = 60. farbe ändert sich erst nach der Schleife zu "blau".


Musterlösung L2

Lösung anzeigen
  1. Die Schleife läuft 6 Mal (range(6) → i = 0, 1, 2, 3, 4, 5).
  2. i = 0 ist gerade (0 % 2 == 0) → Farbe rot.
  3. i = 1 ist ungerade → Farbe blau.
  4. 6 × 60° = 360° – die Turtle dreht sich einmal komplett im Kreis. Es entsteht ein regelmässiges Sechseck, dessen abwechselnde Seiten rot und blau sind.

Musterlösung L3

Lösung anzeigen
iergebnis vor Zeile 5ergebnis nach Zeile 5x nach Zeile 6Ausgabe
00107i=0: x=7, ergebnis=10
110174i=1: x=4, ergebnis=17
217211i=2: x=1, ergebnis=21
32122-2i=3: x=-2, ergebnis=22

Wichtig: ergebnis = ergebnis + x verwendet den alten Wert von x. Erst danach wird x = x - y berechnet.


Musterlösung F1

Lösung anzeigen

Der fehlerhafte Code:

python
from turtle import *

groesse = int(input("Grösse? "))
farbe = input("Farbe? ")

color(farbe)

for i in range(4)        # Fehler 1: Doppelpunkt fehlt
    forward(groesse)
        right(90)        # Fehler 2: zu weit eingerückt (gehört auf gleiche Ebene wie forward)

print(f"Fertig! Seitenlänge war {groesse}, Farbe war {couleur}")  # Fehler 3: Variable heisst farbe, nicht couleur

Der korrigierte Code:

python
from turtle import *

groesse = int(input("Grösse? "))
farbe = input("Farbe? ")

color(farbe)

for i in range(4):
    forward(groesse)
    right(90)

print(f"Fertig! Seitenlänge war {groesse}, Farbe war {farbe}")

Fehler im Überblick:

  1. for i in range(4) → fehlender Doppelpunkt am Ende
  2. right(90) war zu weit eingerückt – muss auf der gleichen Ebene wie forward() stehen
  3. couleur existiert nicht – die Variable heisst farbe

Musterlösung F2

Lösung anzeigen

Der fehlerhafte Code:

python
from turtle import *

color("green")
breite = 0           # Fehler 1: startet bei 0, erste Stufe hat Breite 0 → nichts sichtbar

for i in range(4):   # Fehler 2: range(4) zeichnet nur 4 Stufen statt 5
    print(f"Stufe {i + 1}: Breite {breite}")

    forward(breite)
    left(90)
    forward(hoehe)   # Fehler 3: Variable "hoehe" existiert nicht, gemeint ist "breite"
    right(90)

    breite = breite + 20

Der korrigierte Code:

python
from turtle import *

color("green")
breite = 20

for i in range(5):
    print(f"Stufe {i + 1}: Breite {breite}")

    forward(breite)
    left(90)
    forward(breite)
    right(90)

    breite = breite + 20

Fehler im Überblick:

  1. breite = 0 → die erste Stufe hat Breite 0, die Turtle bewegt sich gar nicht. Startwert muss 20 sein.
  2. range(4) → zeichnet nur 4 Stufen statt 5. Muss range(5) sein.
  3. forward(hoehe) → die Variable hoehe wurde nie definiert. Der senkrechte Strich soll gleich lang wie der waagrechte sein, also forward(breite).

Informatik & ICT Unterricht Neufeld