Modulbild

Python: Wiederholung

lock
Bevorstehend

Nutzen Sie Schleifen (for), um wiederholte Anweisungen mit weniger Code auszuführen – von einfachen Quadraten bis zu verschachtelten Schleifen.

Ziele dieses Moduls
  • Python: Sie geben den Zweck einer Schleife in eigenen Worten wieder
    Verstehen
  • Python: Sie können einfachen Code mit for i in range() lesen und beschreiben, was er macht.
    Verstehen
  • Python: Sie setzen for i in range(...) ein, um Turtle-Befehle mehrfach auszuführen.
    Anwenden

In diesem Modul lernen Sie, wie Sie mit for-Schleifen Befehle mehrfach ausführen lassen können, ohne den Code zu duplizieren. Sie üben das Prinzip an einfachen und verschachtelten Wiederholungen mit der Turtle.

Einführung

Computer sind besonders gut darin, die gleichen Anweisungen (also auch Turtle-Befehle) immer wieder zu wiederholen.
Um ein Quadrat zu zeichnen, müssen Sie also nicht viermal forward(100) und left(90) schreiben.
Es genügt, der Turtle mitzuteilen, dass sie diese beiden Anweisungen viermal wiederholen soll.

Note

Programmierkonzepte

  • Einfache Wiederholstruktur statt Codeduplikation

  • for-Struktur in Python

  • Einrückungen (4 Leerzeichen) sind Pflicht

for-Struktur

Mit der Anweisung

for i in range(4):

sagen Sie der Turtle, sie soll die eingerückten Zeilen viermal wiederholen.
Vergessen Sie den Doppelpunkt am Ende nicht!

Quadrat mit For-Schleife

 

from turtle import *

for i in range(4):
    forward(100)
    left(90)

Square.png

 

Note

Mit for i in range(Anzahl): sagen Sie dem Computer, er soll eine oder mehrere Anweisungen «Anzahl» Mal wiederholen, bevor er weitere Anweisungen ausführt. Alles, was wiederholt werden soll, muss unter for stehen und eingerückt sein.

for i in range(Anzahl):
    Anweisungen, die
    wiederholt werden
    sollen

Warning

Typische Fehler

  • Fehlender Doppelpunkt : nach der for-Zeile

  • Falsche oder fehlende Einrückung

  • Zu viele oder zu wenige Wiederholungen, weil der Wert in range() nicht stimmt

Verschachtelte Schleifen

Ein Quadrat lässt sich leicht mit einer vierfachen Wiederholung zeichnen.
Wenn Sie jedoch 20 Quadrate zeichnen möchten, die jeweils um 18° gegeneinander verdreht sind, benötigen Sie zwei ineinander geschachtelte for-Schleifen:

  • Innere Schleife: zeichnet ein einzelnes Quadrat

  • Äussere Schleife: wiederholt das Zeichnen und Drehen 20 Mal

Wichtig:

  • Jede Schleife erhält ihre eigene Schleifenvariable (i, j …)

  • Alle Anweisungen, die wiederholt werden sollen, müssen korrekt eingerückt sein

  • Mit speed("fastest") beschleunigen Sie die Zeichnung

 
from turtle import *

speed("fastest")

for i in range(20):
    for i in range(4):
        forward(80)
        left(90)
    right(18)

Squares.png

Challenge

Aufgabe Treppe

Zeichnen Sie eine Treppe mit 7 Stufen.

Exercise1.png

Challenge

Aufgabe Stern

Zeichnen Sie einen Stern. Verwenden Sie dabei den Befehl back().

Exercise2.png

Challenge

Aufgabe - Ausgefüllter Stern

Einen «richtigen» Stern können Sie mit den Drehwinkeln 140° und 80° zeichnen.

Exercise3.png

Challenge

Aufgabe – Quadrate

Zeichne folgende Figur mit zwei verschachtelten for-Anweisungen. Im inneren for-Block wird ein Quadrat gezeichnet.

Exercise4.png

Challenge

Perlenkette

Zeichnen Sie eine Perlenkette, die aus 18 Perlen (dots) besteht.

Exercise5.png

Challenge

Aufgabe 6 - Sternenhimmel
 
 
Zeichnen Sie mit Hilfe von Python einen Sternenhimmel mit mindestens 5 Sternen.
 
Hinweis: Verschachtelte Schlaufe
 
Hinweis 2: Um für jeden Stern eine Zufallsposition zu bestimmen, können Sie folgende Zeilen verwenden

import random

# hier kommt ihr code
# über mehrere Zeilen
# und irgendwo ...

   # ... In der einen Schlaufe
   x = random.randint(-1000,1000)
   y = random.randint(-1000,1000)
   penup()
   goto(x, y)
   pendown()