Sie sind auf Seite 1von 15

Vorkurs Informatik / Komedia

Programmieren (3): Wiederholung mit Schleife (for-Schleife)

Fakultät Informatik, Campus Duisburg


In diesem Abschnitt…

 Wiederholung von Programmteilen

➢ Steuerung von Programmabläufen


mit Schleifen

claudia.weis@uni-due.de Vorkurs INKO, Schleifen - 2


Wissenswert: Schleifen in Programmen

Schleifen
 sind Kontrollstrukturen in
Programmiersprachen
 wiederholen ein festes Stück Code

wiederhole … Mal
for-Schleife eine oder mehrere
Programm-
 führt ein Stück Code mit einer Anweisungen
festen Anzahl von Wiederholungen
ausführen kann
 heißt so, weil man dafür das
Schlüsselwort for verwendet

Schleifenrumpf oder Schleifenkörper


 Stück Code, das wiederholt
ausgeführt wird

claudia.weis@uni-due.de Vorkurs INKO, Schleifen - 3


So geht‘s: for-Schleife – ein Beispiel

# Version 1  die erste Version der Funktion square80


enthält 4x das gleiche Stück Code
def square80(theTurtle):
theTurtle.fd(80) #1x
# Version 2 mit for-Schleife
theTurtle.lt(90)
def square80_v2(theTurtle):
theTurtle.fd(80) #2x for k in range(4):
theTurtle.lt(90) theTurtle.fd(80)
theTurtle.lt(90)
theTurtle.fd(80) #3x
theTurtle.lt(90)

theTurtle.fd(80) #4x Achten Sie auf die Einrückungen!


theTurtle.lt(90)
Die sind in Python wichtig!

claudia.weis@uni-due.de Vorkurs INKO, Schleifen - 4


Wissenswert: for-Schleife zum Durchzählen

for k in range(4):

Der Name der Zählvariablen kann unter


Beachtung der Regeln für Variablennamen
frei gewählt werden. Wozu das gut ist,
später mehr. Im Beispiel spielt er keine Rolle.

claudia.weis@uni-due.de Vorkurs INKO, Schleifen - 5


Aufgabe 3.1: Achte auf die Details!

 Überlegen Sie (und probieren Sie zur Überprüfung aus), was die
Unterschiede zwischen folgenden beiden Stücken python Code sind:

# Code-Stück 1 # Code-Stück 2
import turtle import turtle
tina = turtle.Turtle() tina = turtle.Turtle()
for k in range(4): for i in range(4):
tina.fd(80) tina.fd(80)
tina.lt(90) tina.lt(90)
turtle.done() turtle.done()

Wo befindet sich Turtle Tina jeweils, nachdem der Code ausgeführt wurde?

claudia.weis@uni-due.de Vorkurs INKO, Schleifen - 6


Aufgabe 3.2: Vielecke

a) Schreiben Sie ein Programm, das das neben


abgebildete Hexagon zeichnet und dabei eine
for-Schleife verwendet.

b) Schreiben Sie eine Funktion triangle, die ein


Dreieck zeichnet. Zeichnen Sie damit die
abgebildete Figur.

claudia.weis@uni-due.de Vorkurs INKO, Schleifen - 7


Aufgabe 3.3*: Meisterwerke

 Werden Sie kreativ und schaffen Sie ein Meisterwerk mit Polygonen.

Beispiel von https://robertvandeneynde.be/parascolaire/turtle.en.html

claudia.weis@uni-due.de Vorkurs INKO, Schleifen - 8


Aufgabe 3.4*: Schildkröten-Party

 Turtle kann noch viel mehr. Finden Sie es heraus!


▪ https://docs.python.org/3/library/turtle.html

 Ideen für weitere Kreationen gibt‘s auf den folgenden Folien und im
Vorkurs-Moodle.
 Setzen Sie sehr gerne auch eigene Ideen um und teilen Sie sie im
Moodle-Forum.

claudia.weis@uni-due.de Vorkurs INKO, Schleifen - 9


6-eckige Spirale

Hinweis: man kann die Zählervariable innerhalb


einer for-Schleife verwenden und damit rechnen.
Idee: Hauke Fehr, Let‘s code python, Rheinwerk Computing

claudia.weis@uni-due.de Vorkurs INKO, Schleifen - 10


Treppen

Hinweis: for-Schleifen lassen


sich ineinander schachteln…

claudia.weis@uni-due.de Vorkurs INKO, Schleifen - 11


gestrichelter Kreis

Hinweis: ein Polygon mit 36 oder 72 Ecken


sieht schon ziemlich gut wie ein Kreis aus,
aber wie lässt sich „gestrichelt“ erreichen?

Idee: Hauke Fehr, Let‘s code python, Rheinwerk Computing

claudia.weis@uni-due.de Vorkurs INKO, Schleifen - 12


unendliche Möglichkeiten – ein Beispiel

import turtle
tina = turtle.Turtle()
tina.speed(0)
tina.shape('turtle')
tina.pensize(20)
for k in range(150):
tina.color('cornflowerblue')
tina.fd(k*2)
tina.lt(282)
tina.color('seagreen')
tina.fd(k*2)
tina.lt(282)
tina.color('coral')
turtle.done()

claudia.weis@uni-due.de Vorkurs INKO, Schleifen - 13


Turtle kann auch Mathe ;-)

 Mit dem Modul math werden die


mathematischen Fähigkeiten von
python deutlich erweitert,
 so z.B. um eine Sinus-Funktion zu
haben:
from math import sin

 Damit lässt sich dann auch


nebenstehende Grafik erzeugen...
 Wie‘s geht? Am besten mal in den
(allerdings mager kommentierten)
Code reinschauen: [1]

→ mehr zu math und Modulen im Allgemeinen in einem eigenen Kapitel

[1] https://moodle.uni-due.de/pluginfile.php/3444928/mod_folder/content/0/vorkurs02_03sinus.py

claudia.weis@uni-due.de Vorkurs INKO, Schleifen - 14


➢ jetzt live

Fragen? ➢


Foren im Moodle-Kurs
E-Mail
nach dem Vorkurs: LuDi

Das könnte Ihnen auch gefallen