200
Schleifen, die zählen
Kapitel
7
Etwas von dieser Art bauen wir nun in
multipack()
ein:
def multipack(seite, aenderung, farbpaare):
"""Zeichne Muster aus Dreiecken.
Erstes Dreieck hat Seitenlaenge seite.
"""
anzahl = len(farbenpaare)
drehwinkel = 360 / anzahl
for stiftfarbe, fuellfarbe in farbpaare:
fuelle_dreieck(seite, stiftfarbe, fuellfarbe)
left(drehwinkel)
seite = seite + aenderung
>
Ersetze in
dreierpack_arbeit.py
die Funktion
dreierpack()
durch die eben beschriebene Funktion
multipack()
.
>
Ersetze den Aufruf von
dreierpack()
durch einen Aufruf von
mul-
tipack()
.
>
Füge zur Liste
farbenpaare
noch ein oder zwei Farbenpaare hinzu.
Passe die ersten beiden Argumente des
multipack()
-Aufrufs so an,
dass eine schöne Zeichnung entsteht.
>
Wenn alles geklappt hat, speichere eine Kopie des Programms unter
dem Name
multipack.py
ab.
Mini-Quiz umarbeiten
Wir wollen jetzt die eben erarbeitete »Schleifen-Technik« dazu benützen,
das Mini-Quiz-Programm aus Kapitel 4 zu verbessern.
Eine mögliche Ausgab
e
von
multipack.py
.
201
Mini-Quiz umarbeiten
Gleichzeitig ist hier eine gute Gelegenheit, dir eine Technik zu erklären, mit
der man Programme umändern kann. Der entscheidende Punkt dabei ist:
Man sollte während der Arbeit immer wieder ein Stadium erreichen, wo das
Programm ohne Fehlermeldungen ausgeführt werden kann, obwohl alte
Programmteile schon verstümmelt oder verändert sind und die neuen noch
nicht fertig.
Arbeite die folgende Übung Punkt für Punkt nach und versuche, dir diese
Technik anzueignen.
>
Schließe alle IPI-Fenster und starte diesmal IDLE
(P
YTHON
GUI)! Der
Neustart stellt sicher, dass keine alten, unnötigen oder gar störenden
Namen mit irgendwelchen Werten im Arbeitsspeicher sind. Zudem ist
für die Entwicklung von Programmen mit Textausgabe IDLE(P
YTHON
GUI)
die bessere Wahl. (Lies dazu Anhang F auf Seite 442.)
>
Lade
miniquiz05.py
, aus Kapitel 4, ändere den Kopfkommentar und
speichere es als
miniquiz_arbeit.py
im Ordner
kap07
ab.
Zunächst stellen wir den Teil des Programmcodes »außer Dienst«, der geän-
dert werden soll. Das tun wir, indem wir ihn auskommentieren. Das heißt,
wir schreiben an den Anfang der Zeilen Kommentarzeichen. In
mini-
quiz_arbeit.py
soll der Teil geändert werden, der sich auf die Quizfra-
gen bezieht. Das sind die neun Codezeilen nach der Anweisung
punkte =
0
.
Markiere diese neun Zeilen mit den
fragen/loesungen
und wähle
F
ORMAT
|C
OMMENT OUT REGION
oder
(Alt)
+
(3)
.
Dadurch werden diese Zeilen
auskommentiert. Sollten sie
später doch einmal wieder
gebraucht werden, können
aus einem markierten Bereich
mit dem Menüpunkt F
OR
-
MAT
|U
NCOMMENT REGION
oder
(Alt)
+
(4)
die Kommentarmarken
##
wieder entfernt werden.
Zu beachten ist, dass das Programm nun natürlich nicht mehr dasselbe tut
wie vorher. Aber dennoch: Es bleibt ausführbar.
>
Sichere
miniquiz_arbeit.py
und führe es aus!
202
Schleifen, die zählen
Kapitel
7
Der Effekt ist:
>>>
Hallo! Du kannst hier ein paar Quizfragen
beantworten, um dein Wissen zu überprüfen.
Wie heißt du denn? Buffi
Also viel Glück, Buffi - es geht los!
Du hast 0 von 3 Punkten erreicht!
Du stehst noch ziemlich am Anfang, Buffi!
Sieh dir doch mal das Python-Video auf der CD an!
Das Programm ist ohne Fehler ausgeführt worden. Es werden keine Quiz-
fragen gestellt und der Kandidat hat daher nur 0 Punkte erreicht. Das war
ja zu erwarten.
>
Nun erstellen wir die »Datenstruktur« für die Quizangaben. Dazu
musst du die entsprechenden Strings aus dem Programm wieder in
ein Tupel von Tupeln zusammensammeln und zweckmäßigerweise an
den Anfang des Programms stellen.
# (frage,loesung) – Tupel für das Quiz
# kann erweitert und/oder geändert werden
quizdaten=(("Welche Programmiersprache lernst du " +
"gerade? ", "Python"),
("Mit welchem reservierten Wort beginnen " +
"Funktionsdefinitionen? ", "def"),
("Wie viele reservierte Wörter hat Python? ", "33")
)
>
quizdaten
an den Anfang zu stellen ist deswegen günstig, weil sie
dort am leichtesten zu finden, zu ändern oder zu ergänzen sind. Wenn
du noch ein anderes Quiz programmieren willst, sind es gerade diese
Daten, die abzuändern sind.
>
Nun ist das Programm wieder in einem korrekten Zustand. Speichere
es und führe es aus!
Die Ausgabe ist die gleiche, jedoch:
>
Mach mit!
>>> quizdaten
(('Welche Programmiersprache lernst du gerade?', 'Python'),
('Mit welchem reservierten Wort beginnen Funktionsdefinitio-

Get Python für Kids now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.