Hello World! - Die Onleihe

Werbung
Hello
W rld!
warren d. und carter SANDE
LERN MIT MIR SPIELE
PROGRAMMIEREN!
PROGRAMMIEREN FÜR KIDS
UND ANDERE ANFÄNGER
Inhalt
Vorwort. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XIII
Was ist Programmieren?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XIII
Python – eine Sprache für uns und den Computer.. . . . . . . . . . . . . . . . . . . . . . . . . . . XIV
Wozu soll ich Programmieren lernen?.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XV
Warum Python?.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XVI
Die lustigen Sachen.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XVII
Danksagungen.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XIX
Über dieses Buch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XXI
Was du brauchst.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XXI
Was du nicht brauchst.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XXII
Carter sagt.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XXIII
An Eltern und Lehrer.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XXIV
1 Erste Schritte.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Python installieren.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Python mit IDLE starten.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Anweisungen bitte.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Mit Python interagieren.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Programmierzeit.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Das erste Programm ausführen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Wenn etwas schiefgeht. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Dein zweites Programm.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2 Merk’s dir – Speicher und Variablen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Eingabe, Verarbeitung, Ausgabe. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Namen.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Was ist ein Name?.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Zahlen und Strings.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Wie „variabel“ sind sie?.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Das neue Ich.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
V VV
Inhalt
3 Einfache Mathematik. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Die vier Grundrechenarten.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Operatoren. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Punktrechnung vor Strichrechnung.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Zwei weitere Operatoren.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Sehr große und sehr kleine Zahlen.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4 Datentypen.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Typen ändern.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Mehr Informationen mit type().. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Typumwandlungsfehler.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Anwendung von Typumwandlungen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5 Eingabe.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
raw_input(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Der print-Befehl und das Komma.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Zahlen eingeben.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Eingabe aus dem Internet.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
6 GUIs – Grafische Benutzeroberflächen.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Was ist eine GUI?.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Unsere erste GUI.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
GUI-Eingabe. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Welches Eis hättest du gerne?.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Nochmal Zahlen raten. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Andere GUI-Teile.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
7 Immer diese Entscheidungen.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Test, Test.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Einrücken.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Seh’ ich jetzt schon doppelt?.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Andere Arten von Tests. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Was passiert, wenn der Test „falsch“ ergibt?.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Mehrere Bedingungen testen.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Das Schlüsselwort „and“.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Das Schlüsselwort „or“. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Das Schlüsselwort „not“.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
8 Schleifen.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
Zählschleifen.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
Verwendung von Zählschleifen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
V VVV
Inhalt
Eine Abkürzung: range(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Eine Sache des Stils – Namen von Schleifenvariablen.. . . . . . . . . . . . . . . . . . . . . . . . . 82
Zählen in Schritten.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Zählen mit Zahlen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Da wir gerade dabei sind …. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Ausstieg aus einer Schleife – break und continue.. . . . . . . . . . . . . . . . . . . . . . . . . 88
9 Nur für dich – Kommentare.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Kommentare hinzufügen.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Einzeilige Kommentare.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Zeilenende-Kommentare.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Mehrzeilige Kommentare.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Kommentierstil.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Auskommentieren. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
10 Zeit zum Spielen.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Skier.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
11 Geschachtelte und variable Schleifen.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
Geschachtelte Schleifen.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
Variable Schleifen.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Variable, geschachtelte Schleifen.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Noch mehr variable, geschachtelte Schleifen.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
Verwendung von geschachtelten Schleifen.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
12 Listen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
Was ist eine Liste?.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
Eine Liste erstellen.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Elemente in eine Liste einfügen.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Wozu der Punkt?.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Listen können alles Mögliche speichern.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Elemente von einer Liste abrufen.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
Listen in Scheiben schneiden: „Slicing“.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Elemente ändern.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Andere Möglichkeiten der Listenerweiterung.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Elemente aus einer Liste löschen.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
Eine Liste durchsuchen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
Eine Liste per Schleife durchlaufen.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
Listen sortieren. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
Veränderlich und unveränderlich. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
Listen von Listen: Tabellen.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
II
Inhalt
13 Funktionen.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
Funktionen – die Bausteine.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
Eine Funktion aufrufen.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
Argumente an eine Funktion übergeben.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
Funktionen mit mehreren Argumenten.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
Funktionen, die einen Wert zurückgeben. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
Geltungsbereich von Variablen.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
Globale Variablen erzwingen.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
Tipps zur Benennung von Variablen.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
14 Objekte.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
Objekte im wirklichen Leben.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
Objekte in Python.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
Objekt = Attribute + Methoden.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
Was soll der Punkt?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
Objekte erstellen.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
Eine Beispielklasse – HotDog.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
Die Daten verbergen.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
Polymorphismus und Vererbung.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
Vorausdenken.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
15 Module. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
Was ist ein Modul?.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
Warum Module verwenden?.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
Eimerweise Legosteine.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
Wie werden Module erstellt?.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
Wie werden Module verwendet? .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
Namensräume.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
Standardmodule.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
16 Grafik.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
Hilfe holen – Pygame.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
Ein Pygame-Fenster.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
In das Fenster zeichnen.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
Einzelne Pixel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
Bilder. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
Jetzt kommt Bewegung in die Sache!.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
Animation.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
Weichere Animationen.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
Den Ball abprallen lassen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
Den Ball umbrechen.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
X
Inhalt
17 Sprites und Kollisionserkennung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
Sprites. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
Peng! Kollisionserkennung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
Die Zeit messen.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
18 Eine neue Eingabeart: Ereignisse.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
Ereignisse.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
Tastaturereignisse.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
Mausereignisse. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
Timer-Ereignisse. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
Zeit für noch ein Spiel: PyPong.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
19 Sound. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
Pygame hilft – mit dem mixer.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
Sounds erzeugen oder Sounds abspielen.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
Sounds abspielen.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
Lautstärke regeln. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
Musik wiederholen.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
Sounds für PyPong.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
Noch mehr coole Sounds.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
Musik für PyPong.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
20 Noch mehr GUIs.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
Der Umgang mit PythonCard.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
Komponenten. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
Action in der GUI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
Ereignis-Handler. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
Den Button bewegen.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
Nützliche GUIs.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
TempGUI.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
Was steht auf dem Menü?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
21 Ausgabeformatierung und Strings.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
Neue Zeilen.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
Horizontale Abstände: Tabulatoren.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
Variablen in Strings einfügen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
Zahlenformatierung.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
Strings und so. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
22 Ein- und Ausgabe mit Dateien. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
Was ist eine Datei?.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
Dateinamen.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
XX
Inhalt
Speicherorte.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
Eine Datei öffnen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310
Eine Datei lesen.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
Text- und Binärdateien.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
In eine Datei schreiben.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
Daten in Dateien speichern: pickle.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
Es ist mal wieder Spielzeit: Galgenmännchen.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320
23 Das Zufallsprinzip. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
Was ist Zufall?.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
Würfeln.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
Ein Kartenspiel erstellen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
Crazy Eights – Verrückte Achter.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
24 Computersimulationen.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
Die Realität modellieren. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
Mondlandung.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
Die Zeit festhalten. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
Zeitobjekte.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
Die Zeit in einer Datei speichern.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366
Ein virtuelles Haustier.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367
25 Und wie geht’s weiter?.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378
Allgemeine Programmierung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378
Python.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
Spieleprogrammierung und Pygame.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380
Was es sonst noch für Python gibt.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380
Schau dich um.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382
Regeln für Variablennamen.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
Lösungen zu den Übungen.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385
Index.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415
X XX
Vorwort
Das Vorwort ist der Teil am Anfang eines Buches, den du gerne überspringst, um
gleich zu den interessanten Sachen zu kommen, oder? Natürlich kannst du das tun
(schließlich bist du es, der die Seiten umblättert), doch wer weiß, was du dabei verpasst. Da das Vorwort hier recht kurz ist, solltest du vielleicht einen Blick riskieren, nur
für den Fall des Falles.
Was ist Programmieren?
Ganz einfach: Durch Programmieren sagst du einem Computer, was er tun soll. Computer sind nur dumme Maschinen. Von sich aus wissen sie gar nichts. Du musst ihnen
alles bis in die kleinsten Einzelheiten erklären.
Duhhhhhhhhh…
Doch wenn du dem Computer die richtigen Anweisungen gibst, kann er wunderbare
und erstaunliche Dinge tun.
Worterklärung
Eine Anweisung ist ein Grundbefehl, den du einem Computer
gibst, normalerweise, damit er eine einzige, ganz bestimmte
Sache tut.
X X XX
Vorwort
Ein Computerprogramm besteht aus Anweisungen. Computer können nur deshalb
so tolle Dinge tun, weil eine Menge schlauer Programmierer Programme – oder Soft‑
ware – geschrieben haben, die ihnen sagen, wie es geht. Software ist nichts anderes
als ein oder mehrere Programme, die auf deinem Computer laufen – oder manchmal
auch auf einem anderen Computer, mit dem deiner verbunden ist, wie zum Beispiel
ein Webserver.
Was passiert da drin?
Computer „denken“ mit ganz, ganz vielen
elektrischen Schaltkreisen. Diese Schaltkreise sind im Grunde wie Schalter, die
ein- oder ausgeschaltet sein können.
Ingenieure und Informatiker (Computerwissenschaftler) sagen 1 für EIN und 0 für
AUS. Alle diese Einser und Nullen bilden
eine Art von Code, den so genannten Binärcode. Binär bedeutet eigentlich nur, dass
es zwei „Zustände“ gibt, nämlich EIN oder
AUS, also 1 oder 0.
Wusstest du schon, dass das Wort Bit eine
Abkürzung für Binar Digit ist (englisch
für „Binärziffer“)?
Python – eine Sprache für uns und den Computer
Alle Computer verwenden innen den Binärcode, aber Menschen sprechen „Binär“
meistens nicht besonders gut. Wir brauchen ein einfacheres Mittel, um dem Computer zu sagen, was er tun soll. Deshalb haben die Menschen Programmiersprachen
erfunden. Eine Programmiersprache lässt uns Dinge auf eine Weise sagen, die für uns
noch verständlich ist, und übersetzt das dann für den Computer in Binärcode.
Es gibt viele verschiedene Programmiersprachen. Eine davon – nämlich Python –
lernst du in diesem Buch, damit du dem Computer sagen kannst, was er tun soll.
Wie alle anderen Programmiersprachen baut auch Python auf der englischen Sprache
auf und benützt Begriffe wie „print“ oder „class“. Vielleicht kennst du das eine oder
andere englische Wort ja schon und verstehst seine Bedeutung. Wenn nicht, schlag
die Wörter am besten im Lexikon oder unter http://dict.leo.org nach. Denn wenn du
weißt, was die Wörter bedeuten, kannst du die Programme viel leichter verstehen.
XXX
Wozu soll ich Programmieren lernen?
1110001101
0001110011
0100101000
Nein, nein,
ich spreche nur
Menschensprache!
>>> print “Hallo”
Hallo
Aha! Jetzt hab
ich’s! Hallo!
Wurde auch
Zeit!
Wozu soll ich Programmieren lernen?
Selbst wenn du kein Profi-Programmierer werden willst, gibt es viele gute Gründe,
Programmieren zu lernen:
ƒƒNa, zunächst einmal, weil du es willst! Programmieren kann sehr interessant und
lohnend sein, als Hobby und als Beruf.
ƒƒWenn du dich für Computer interessierst und wissen willst, wie du ihnen beibringen kannst, zu tun, was du willst, ist das ein Grund, Programmieren zu lernen.
ƒƒVielleicht möchtest du deine eigenen Spiele programmieren. Oder du findest gerade kein Programm, das genau das tut, was du willst oder brauchst, und möchtest
deshalb ein eigenes schreiben.
ƒƒComputer sind heutzutage überall; du wirst sie wahrscheinlich in der Schule, zu
Hause oder bei der Arbeit benutzen müssen. Wenn du Programmieren lernst,
kannst du Computer ganz allgemein besser verstehen.
XX
Vorwort
Warum Python?
Warum habe ich aus den Unmengen Programmiersprachen, die zur Wahl stehen, ausgerechnet Python für ein Programmierbuch für Kinder ausgesucht? Hier sind einige
Gründe dafür:
ƒƒPython war von Anfang an auf leichte Erlernbarkeit ausgerichtet. Von allen Programmiersprachen, die ich gesehen habe, sind Programme in Python am einfachsten zu schreiben, zu lesen und zu verstehen.
ƒƒPython kostet nichts. Du kannst es gratis herunterladen – und mit ihm sehr viele
witzige und nützliche Programme, die in Python geschrieben sind. Wo – das erfährst du in Kapitel 1.
ƒƒPython ist eine Open Source-Software. Open Source bedeutet, dass jeder Benutzer
Python erweitern kann (also Möglichkeiten finden, um mit Python neue Sachen zu
tun oder alte Sachen zu vereinfachen). Viele Menschen haben das bereits getan
und es gibt eine große Menge kostenloser Python-Sachen zum Herunterladen.
ƒƒPython ist kein Spielzeug. Es eignet sich nicht nur sehr gut, um Programmieren zu
lernen, sondern wird auch von Tausenden von Profis in aller Welt benutzt, darunter
Programmierer bei der NASA oder von Google. Du brauchst dich also nicht, nachdem du Python gelernt hast, auf eine „echte“ Sprache umzustellen, um „richtige“
Programme zu schreiben. Mit Python ist eine Menge möglich.
ƒƒPython läuft auf verschiedenen Computertypen: Windows-Rechner, Macs und
Linux-Computer. Meistens wird dasselbe Python-Programm, das zu Hause auf
deinem Windows-PC funktioniert, auch auf dem Mac in der Schule laufen. Du
kannst dieses Buch mit buchstäblich jedem Computer benutzen, auf dem Python
installiert ist. (Und denk dran: Wenn dein Computer kein Python hat, kannst du es
gratis herunterladen.)
ƒƒIch liebe Python. Ich lerne gerne damit und deshalb glaube ich, dass auch du das
tun wirst.
s.ex
2: pr
i
a
if #
)c
it(0
lass # Increment the pag
e cou
nt,
and
Denken wie ein Programmierer
the lin
re given, print
ello i
t >>>
Hello
f#
int filen
et
res
>>>H
if #
: pypr
sage
'sy
'U
nt
am e
essage if len(sys.
ar
!=
gv)
t > >>
prin
p ri n t
prin
m
pful
h el
Hello
t s we
self.he
In diesem Buch benutzen wir Python, aber das e co
u nt
meiste, was hier über das Programmieren
n =I f
n
n
ume gesagt wird, gilt auch für jede andere
ar g
Programmiersprache. Wenn du mit Python
, s anfängst zu programmieren, ist das ein guter
ime
Start für jede andere Programmiersprache,
die du irgendwann einmal verwenden wirst.
ader_writte
no arguments a
no
o If
#P
#
on
yth
tex
t
#!/bin/en
ina
Pag
df
r an ooter
ead
tho
n
vp
#!/bin/env p
y
ah
;
t=1
ag i
me nt s 1 ;
rgu
If
rt
impo sys, t
tring #
self.c
oun
nate a
e
text file, addin
te a
g
X XX
Die lustigen Sachen
Die lustigen Sachen
Eines wollte ich noch sagen. …
Was besonders Kindern am Computer am meisten Spaß macht, sind Spiele mit Bild
und Ton. Im Laufe des Buches werden wir lernen, wie wir eigene Spiele schreiben
und vieles mit Bildern und Tönen anstellen können. Hier siehst du Bilder von einigen
Spielen, die wir programmieren:
X X XX
Index
Symbole
' (Einfache Anführungszeichen in Strings) 22
( ) (Funktionsargumente) 31, 130
[] 79, 115, 133
* (alle) 178, 180
"""-Zeichen 23, 93
/ (Schrägstrich) 308
\ (Backslash) 93, 288, 290, 308
\n (Newline) 312
& (vor Hotkeys) 280
# (Kommentare) 92, 95
% (Prozentzeichen) 33, 291, 295
%d (Integer in Formatstring) 293
%E, %e (E-Notation in Formatstring) 294
%F, %f (Float in Formatstring) 291, 293
negative Zahlen 294
ƒƒ
positive Zahlen 294
ƒƒ
%G, %g (Float- oder E-Notation in
Formatstring) 295
%i (Integer in Formatstring) 291, 293
%s (String in Formatstring) 291
>> (Ausgabe umleiten) 318
>>> (Python-Prompt) 17
Mathematische Zeichen und Begriffe
- (Minus/Subtraktion) 28
-= (Dekrement) 34
<-Zeichen 67
<=-Zeichen 67
<>-Zeichen 67
!=-Zeichen 67
** (Exponent) 73
** (Exponentialrechnung) 32
/ (Division) 28
% (Modulus) 73
+ (Plus/Addition) 27, 294, 296, 297
+= (Inkrement) 34
=-Zeichen 17, 29, 66, 213
==-Zeichen 66
>-Zeichen 67
>=-Zeichen 67
Zahlen
24-Bit-Farbe 189
3-D-Grafik 381
A
abgeleitete Klasse 168
abgerundet 49
Abstände, horizontal 289
Abwärts-Pfeil, K_DOWN 231
Achterreihe 79
Addition 27
aktives Fenster 185
aktuelles Arbeitsverzeichnis 308
ALT-Taste 280
and 70
Ändern einer Liste 121
anfügen, Datei 315
Anfügen-Modus 316
Anführungszeichen 42
Animation 203
Anzeigeoberfläche 188
doppelt gepuffert 188
ƒƒ
flip 187, 189
ƒƒ
.app 305
append() 121, 122
Arbeitsverzeichnis 308, 309
Argument an eine Funktion übergeben
Argumente 84, 141, 143
Arithmetik 27
Attribute 154, 305, 318
Daten ändern 166
ƒƒ
Daten anzeigen 166
ƒƒ
Auflösung 188
Aufwärts-Pfeil, K_UP 231
ausführbare Datei, .exe 305
Ausgabe 53, 304
141
44 4
Index
umleiten 318
ƒƒ
Ausgabe eines \ 290
Ausgabeformatierung 277, 286
Auffüllen 294
ƒƒ
automatischer Float 295
ƒƒ
E-Notation 294, 295
ƒƒ
Fließkomma 293
ƒƒ
formatierte Zahlen speichern
ƒƒ
Integer 293
ƒƒ
Komma 287
ƒƒ
Verkettung 287
ƒƒ
Zahlenformatierung 292
ƒƒ
auskommentieren 94
B
295
Backslash-Zeichen, \ (für spezielle
Ausgabecodes) 288
Backslash (Zeilenfortsetzungszeichen), \ 308
Ball
mit Aufwärts- und Abwärts-Pfeil 232
ƒƒ
mit einem Timer-Ereignis auf und ab
ƒƒ
bewegen 237
mithilfe von Sprites bewegen 216
ƒƒ
Ball-Klasse verwenden 157
Ball-Programm mit Sprites und Clock.tick()
229
Ballspiel in 2-D 207
BASIC 382
BBC BASIC 382
Bedingung 63, 64
mehrere 70
ƒƒ
Bedingungsschleifen 76, 87
Befehls-Shell 185
Benutzerereignis 236
Betriebssystem, os 366
Bilder 199
Bildschirmkoordinaten 190
horizontal 190
ƒƒ
vertikal 190
ƒƒ
x-Achse 190
ƒƒ
y-Achse 190
ƒƒ
Binär 41
Binärdateien 313, 314
öffnen 314
ƒƒ
rb 314
ƒƒ
Binärformat 305
Bindestrich 28
Bits 189, 305
Blatt des Spielers anzeigen 346
Blitting 201, 213, 230, 357
Boolescher Wert 125
44 4
False 125
ƒƒ
True 125
ƒƒ
Bottom-Up 343
break 89
Browser 53
Button 267
Cancel 58
ƒƒ
Eigenschaften ändern 268
ƒƒ
buttonbox() 56
Button-Eigenschaft position 272
Byte 189, 305
C
C 379
C++ 379
Cancel 58
Carriage Return 287
choice() 331, 336
choicebox() 57
Choicebox verkleinern 58
class-Schlüsselwort 270
Clock und get_fps() im Wasserballprogramm
224
Code aufräumen 283
Codeblock 65
Code-Rümpfe 169
Collection 115
combine() 363
component 267
Computeradresse 189
Computeranimation 202
computergeneriert
Kartenspiele 329
ƒƒ
Würfel 329
ƒƒ
Zufallsereignisse 329
ƒƒ
Computer-Kartenspiele 340
Computer-Lochkarte 314
Computer-Modell 354
Computersimulation 354
continue 88
CR 287
D
Datei 304, 305
anfügen 310, 315, 316
ƒƒ
.app 305
ƒƒ
binär 313
ƒƒ
Dateiname 310
ƒƒ
Eigenschaften 305
ƒƒ
entpickeln 319
ƒƒ
ersetzen 310
ƒƒ
Index
erstellen 310
ƒƒ
Erweiterung 305
ƒƒ
.exe 305
ƒƒ
Größe 305
ƒƒ
hinzufügen 310
ƒƒ
lesen 310, 311
ƒƒ
load() 320
ƒƒ
.mp3 305
ƒƒ
Name 305, 310
ƒƒ
öffnen 310, 311
ƒƒ
Ordner 306
ƒƒ
Pfad 307
ƒƒ
Pfadnamen 308
ƒƒ
pickle 318
ƒƒ
print 318
ƒƒ
.py 305, 309
ƒƒ
readline() 312
ƒƒ
readlines() 311
ƒƒ
schließen 312, 316
ƒƒ
schreiben 310, 314, 315
ƒƒ
seek() 313
ƒƒ
speichern 305, 306
ƒƒ
Speicherort 305
ƒƒ
Textdateien 313
ƒƒ
.txt 305
ƒƒ
Typ 305
ƒƒ
Dateien mit load() entpickeln 320
Dateimodus
a 315
ƒƒ
r 315
ƒƒ
w 315
ƒƒ
date-Klasse 362
Datenstruktur 131
Datentypen 39
datetime.combine() 363
datetime-Objekt 362
Parameter 362
ƒƒ
Datum und Uhrzeit 361
Zeitstempel 361
ƒƒ
Debugging 277
def 137
default 59
dekrementieren, -= 24, 34
del 124
Delta 361, 363
Dialogfeld 56, 266
Eingabe 56
ƒƒ
Division 28
Modulus 33
ƒƒ
Quotient 32
ƒƒ
Rest 32
ƒƒ
Dokumentation 91
Doppel-Backslash, \\ 308
Doppelpunkt 65, 120, 138
Doppelstern, ** 32
doppeltes Gleichheitszeichen 66
doppelt gepuffert 188
doppelt geschachtelte Schleifen 105
drei Anführungszeichen 23, 93
dump() 319
durchgehende Sinuskurve 197
E
EasyGui 53, 182
buttonbox() 56
ƒƒ
choicebox() 57
ƒƒ
Choicebox verkleinern 58
ƒƒ
enterbox() 58
ƒƒ
Homepage 62
ƒƒ
importieren 54
ƒƒ
installieren 54
ƒƒ
integerbox() 60
ƒƒ
Nachrichtenfeld 54
ƒƒ
Texteingabe 58
ƒƒ
easygui.py 54
Echtzeit 361
eckige Klammern 79, 115, 133
Eigenschaften 154
Eingabe 45, 53, 304, 310
aus anderen Quellen 50
ƒƒ
aus dem Internet 50
ƒƒ
Eingabeaufforderung ausgeben 47
ƒƒ
Eingabeaufforderung, >>>, Meldung,
ƒƒ
ausgeben 47
Ereignisse 227
ƒƒ
mit Buttons 56
ƒƒ
mit Choicebox 57
ƒƒ
mit Enterbox 59
ƒƒ
Eingabefeld
Drehfeld 274
ƒƒ
Spinner 274
ƒƒ
TextField 274
ƒƒ
Einmaleins 81
einrücken 65, 66
Einrückungskonvention 66
einzeilige Kommentare 92
Elemente 115
elif 68, 101
else 69
Ende des Songs abwarten 256
Endlosschleifen 78
endswith() 299
44 4
Index
E-Notation 34, 35, 37, 320
enterbox() 58
Entscheidungen 63
Entscheidungsbaum 108
Entscheidungspunkt 109
ƒƒ
ereignisgesteuerte Programme 227
Ereignishandler 228, 271, 370
Ereignisschlange 228, 231
ƒƒ
Ereignisschleife 183, 228
ƒƒ
Ereignisse 183, 227, 228, 271, 272, 370
Benutzerereignis 236
ƒƒ
Ereignishandler 228, 271
ƒƒ
Ereignisschlange 228, 231
ƒƒ
Ereignisschleife 183, 228
ƒƒ
KEYDOWN 229, 231
ƒƒ
Maus 234
ƒƒ
MOUSEBUTTONDOWN 234, 235
ƒƒ
MOUSEBUTTONUP 234, 235
ƒƒ
MOUSEMOTION 234, 240
ƒƒ
on_ 271
ƒƒ
Parameter 272
ƒƒ
pygame.event.get() 231
ƒƒ
QUIT 231
ƒƒ
Tastatur 229
ƒƒ
Tastenereignisse 230
ƒƒ
timer 235
ƒƒ
Timer-Ereignisse 235
ƒƒ
Zufall 330
ƒƒ
Erweiterung 305
Event siehe Ereignisse
Exponenten 32, 35, 37
extend() 121, 122
F
False 125, 225
Farben
Nummer 189
ƒƒ
Primär 189
ƒƒ
RGB 189
ƒƒ
Fehler 29
behandeln 371
ƒƒ
Fehlerbehebung 94
ƒƒ
häufig 25
ƒƒ
invalid literal 43
ƒƒ
Rundungsfehler 41
ƒƒ
Fließkommadarstellung 293
flip 187, 189
float 364
float() 39, 48, 364
float(raw_input()) 48
Floats 60
44 4
Floatvariable, %f 291
font-Objekt 243
for 76
Formatstrings 291
%E, %e 294
ƒƒ
%F, %f 293
ƒƒ
%G, %g 295
ƒƒ
for-Schleife 76, 78, 337
Programm 77
ƒƒ
Frame 221
Framerate 221, 223
anpassen 223
ƒƒ
skalieren 223
ƒƒ
Frames pro Sekunde 221
Grenze 222
ƒƒ
Funktionen 39, 137, 153
Argumente 84, 141, 143, 144
ƒƒ
aufrufen 137, 139
ƒƒ
buttonbox() 56
ƒƒ
choice() 331, 336
ƒƒ
choicebox() 57
ƒƒ
Code-Rümpfe 169
ƒƒ
definieren 137
ƒƒ
enterbox() 58
ƒƒ
Ergebnis 145
ƒƒ
erstellen 137
ƒƒ
float() 39, 48, 364
ƒƒ
Funktionen, die Werte zurückgeben 147
ƒƒ
help() 62
ƒƒ
image 199
ƒƒ
input() 49
ƒƒ
int() 39, 48
ƒƒ
integerbox() 60
ƒƒ
Liste 145
ƒƒ
mehrere Argumente 143, 144
ƒƒ
mehrere Parameter 144
ƒƒ
Methoden 155
ƒƒ
msgbox() 54
ƒƒ
Parameter 84, 143
ƒƒ
pygame.draw.circle() 187
ƒƒ
pygame.draw.lines() 197
ƒƒ
pygame.draw.rect() 192
ƒƒ
pygame.image.load() 201
ƒƒ
randint() 330
ƒƒ
range() 80, 83
ƒƒ
raw_input() 45
ƒƒ
remove() 336
ƒƒ
Rückgabewert 145
ƒƒ
sorted() 130
ƒƒ
str() 39
ƒƒ
Surface.get_at() 199
ƒƒ
Index
Surface.set_at() 199
ƒƒ
sys.exit() 231
ƒƒ
type() 42
ƒƒ
Werte zurückgeben 146
ƒƒ
G
Galgenmännchen 320
Galgenmännchen-Programm 325
Ganzzahl 40
Gedächtnis 330
Geltungsbereich von Variablen 147
geschachtelte Schleifen 101, 109, 337
Gleichheit 73
Gleichheitszeichen 29
global 150
globale Namensräume 177
globale Variablen 148, 150
Grafik 182
Frame 221
ƒƒ
Framerate 221
ƒƒ
Frames pro Sekunde 221
ƒƒ
löschen 203, 230
ƒƒ
rendern 243
ƒƒ
übermalen 203, 230
ƒƒ
Graphical User Interface siehe GUI
größer 67, 73
größer gleich 67, 73
Groß- und Kleinschreibung 25
group-Klasse 217
GUI 53, 266, 344
Galgenmännchen 321
ƒƒ
Komponenten 267
ƒƒ
Steuerelemente 267
ƒƒ
virtuelles Haustier 369
ƒƒ
Widgets 267
ƒƒ
GUI-Elemente
Dialogfelder 56, 266
ƒƒ
H
help() 62
Hintergrundmusik 255
wiederholen 256
ƒƒ
Hitkey 280
horizontale Abstände 289
HotDog-Programm 164
HyperCard 266
I
IDLE 53, 352
Farben 93
ƒƒ
if 65, 70, 101
import 174
in 125, 300
index() 126, 300
Index 118, 119
Informationen speichern 304
__init__() 158
initialisieren 158, 356
inkrementieren, Variable, += 24, 34
input() 49
insert() 121, 122
Instanz 156
int() 39, 41, 48
Integer 364
integerbox() 60
Integerformatierung 293
Integervariable, %i 291
interaktiver Modus 40
invalid literal-Fehler 43
isfile() 366
Iteration 78, 81, 101
J
Java 379
join() 298
K
Kartenspiel-Programm, Crazy Eights
KEYDOWN 231
delay-Wert 233
ƒƒ
interval value 233
ƒƒ
key repeat 233
ƒƒ
mehrere Ereignisse 233
ƒƒ
key repeat 233
Kids Programming Language 378
Klammern 31
eckige 115
ƒƒ
Klassen 156
abgeleitete 168
ƒƒ
Clock 222
ƒƒ
date 362
ƒƒ
Familien 168
ƒƒ
group 217
ƒƒ
Namenskonvention 163
ƒƒ
Polymorphismus 167
ƒƒ
Sprite 212
ƒƒ
time 362
ƒƒ
timedelta 363
ƒƒ
Unterklasse 168
ƒƒ
Vererbung 168
ƒƒ
kleiner 67, 73
kleiner gleich 67, 73
340
44 4
Index
Kleinschreibung 302
Kollisionserkennung 217, 241
pixelgenau 220
ƒƒ
rect 220
ƒƒ
Kombination 107
Kommas 47, 115, 144, 287
Kommentare 91
einzeilige 92
ƒƒ
mehrzeilige 92
ƒƒ
Zeilenende 92
ƒƒ
Komponenten
StaticText 274
ƒƒ
Steuerelemente 273
ƒƒ
Widgets 273
ƒƒ
Komponenteneigenschaft command 283
Konstanten 103
konvertieren 39
Kopie einer Liste 129
KPL siehe Kids Programming Language
Kreis zeichnen 186
künftige Python-Versionen 49
Kunst mit draw.rect 194
Kurven aus vielen kleinen Rechtecken 196
L
Lautstärke 254
Line Feed, LF 287
Listen 57, 79, 115, 131, 153, 337
ändern 121
ƒƒ
append() 116, 122
ƒƒ
del 124
ƒƒ
durchsuchen 125
ƒƒ
Elemente 115
ƒƒ
Elemente einfügen 116
ƒƒ
erstellen 116
ƒƒ
extend() 122
ƒƒ
geordnet 127
ƒƒ
in 125
ƒƒ
index() 126
ƒƒ
Index 118
ƒƒ
Inhalt 117
ƒƒ
insert() 122
ƒƒ
Kommas 115
ƒƒ
kopieren 129
ƒƒ
leere 116
ƒƒ
mit pickle in einer Datei speichern
ƒƒ
pop() 124
ƒƒ
remove() 123
ƒƒ
reverse() 127
ƒƒ
Slice 120
ƒƒ
Slice-Abkürzungen 120
ƒƒ
444
319
Slice-Notation 120, 128
ƒƒ
Slicing 119
ƒƒ
sortieren 127
ƒƒ
sortieren in umgekehrter Reihenfolge
ƒƒ
127
sortierte Kopie 130
ƒƒ
Tupel 130
ƒƒ
veränderlich 130
ƒƒ
von Listen 131
ƒƒ
load() 320
logische Operatoren 72
logischer Ausdruck 125
Logo 380
lokale Namensräume 177
lokale Variablen 148
löschen, übermalen 203
lower() 302
M
Mac OS X, .app 305
Mailinglisten 379
Pygame 380
ƒƒ
PythonCard 379
ƒƒ
Mathe 27
Mausereignisse 234
Maus ziehen 235
mehrere Argumente 143, 144
mehrere Ebenen, Ordner 306
mehrere Parameter 144
mehrzeilige Kommentare 92
Menü 278
aktivieren 280
ƒƒ
Menu Editor
New Menu 279
ƒƒ
New Menu Item 281
ƒƒ
Menü-Ereignishandler hinzufügen 282
Menüereignis, select 281
Methoden
Argumente übergeben 155
ƒƒ
Code-Rümpfe 169
ƒƒ
combine() 363
ƒƒ
Polymorphismus 167
ƒƒ
Vererbung 168
ƒƒ
Werte zurückgeben 155
ƒƒ
Methoden eines Objekts 154
Minus 28
Modell 354
Moderne Kunst mit Farbe 195
Module 53, 137, 172, 173, 266, 339
erstellen 173
ƒƒ
import 174
ƒƒ
Index
importieren 177
ƒƒ
Namensräume 175
ƒƒ
Python Standardbibliothek 178
ƒƒ
random 180, 329
ƒƒ
sleep() 179
ƒƒ
sprite 211
ƒƒ
time 179
ƒƒ
verwenden 174
ƒƒ
Modulus, % 33, 292
Mondlandung-Programm 357
.mp3 305
MP3-Dateien 251
msgbox() 54
Multiplikationstabellen 102
Münze werfen 330, 334
Musik 252
fadeout() 262
ƒƒ
get_busy() 256
ƒƒ
Hintergrund 255
ƒƒ
immer wiederholen 257
ƒƒ
PyPong 261
ƒƒ
set_volume() 254
ƒƒ
spielen 253
ƒƒ
und Sound mit Lautstärkeregelung
ƒƒ
255
N
Namensräume 175, 244
global 177
ƒƒ
lokal 177
ƒƒ
Namen von Variablen 151
Newline-Zeichen, \n 287, 288, 312, 313
not 72
now() 364
Nummernzeichen, # 92, 95
O
Objekte 117, 137, 153
abgeleitete Klasse 168
ƒƒ
Attribute 154
ƒƒ
Attribute ändern 166
ƒƒ
Eigenschaften 154
ƒƒ
erstellen 156
ƒƒ
Funktionen und Daten zusammenfassen
ƒƒ
153
__init__ () 158
ƒƒ
initialisieren 158
ƒƒ
Instanz 156
ƒƒ
Instanzen anlegen 157
ƒƒ
Klasse 156
ƒƒ
Methoden 154, 155
ƒƒ
self 161
ƒƒ
__str__() 159
ƒƒ
Unterklasse 168
ƒƒ
Variablen 155
ƒƒ
Verbergen von Daten 166
ƒƒ
objektorientiert 153
Objektsyntax 117
Ogg Vorbis-Dateien 251
on_ 271
open() 310
a-Argument 315
ƒƒ
r-Argument 311, 315
ƒƒ
w-Argument 315
ƒƒ
Open Graphics Language 380
Operatoren 29, 67
gleich 64
ƒƒ
größer 67
ƒƒ
kleiner 67
ƒƒ
Liste 73
ƒƒ
logische 72
ƒƒ
ungleich 67
ƒƒ
verketten 67
ƒƒ
or 71
Ordner 306
Baum 307
ƒƒ
mehrere Ebenen 306
ƒƒ
Unterordner 307
ƒƒ
Wurzel 307
ƒƒ
Zweige 307
ƒƒ
Ordnerstruktur 306
os 366
P
Parameter 84, 143
reverse 127
ƒƒ
pass 169, 184
Permutation 107
Pfad 307
Pfadnamen 308
Phrogram 378
pickle 318, 366
dump() 319
ƒƒ
load() 320
ƒƒ
Pixel kopieren 201
Plus 27
Pluszeichen, + 296, 297
Polymorphismus 167
pop() 124
print 20, 41, 286
Programme
Achterreihe 79
ƒƒ
Anfügen-Modus 316
ƒƒ
4 44
Index
anhalten 78
ƒƒ
Argument an eine Funktion übergeben
ƒƒ
141
Aufräumarbeiten 284
ƒƒ
Ausgabe 53
ƒƒ
Bälle mithilfe von Sprites bewegen 216
ƒƒ
Ball-Klasse 156
ƒƒ
Ball-Klasse verwenden 157
ƒƒ
Ball mit Aufwärts- und Abwärts-Pfeil 232
ƒƒ
Ball mit einem Timer-Ereignis auf und ab
ƒƒ
bewegen 237
Ball-Programm mit Sprites und
ƒƒ
Clock.tick() 229
Ballspiel in 2-D 207
ƒƒ
Clock und get_fps() im
ƒƒ
Wasserballprogramm 224
Code aufräumen 283
ƒƒ
Crazy Eights Programm 342
ƒƒ
Dateien mit load() entpickeln 320
ƒƒ
Datei öffnen und lesen 311
ƒƒ
die Ausgabe des Objekts mit __str__()
ƒƒ
ändern 160
durchgehende Sinuskurve 197
ƒƒ
Eingabe 45, 53
ƒƒ
Eingabe aus dem Internet 50
ƒƒ
Eingabe mit Buttons 56
ƒƒ
Eingabe mit Choicebox 57
ƒƒ
Eingabe mit Enterbox 59
ƒƒ
Einmaleins 81
ƒƒ
Ende des Songs abwarten 256
ƒƒ
ereignisgesteuert 227
ƒƒ
Ereignishandler für den Hello-Button 271
ƒƒ
for-Schleife 77, 78
ƒƒ
Funktionen mit zwei Argumenten 144
ƒƒ
Funktion erstellen und benutzen 138
ƒƒ
Funktion erstellen und verwenden, die
ƒƒ
einen Wert zurückgibt 147
Galgenmännchen-Programm 325
ƒƒ
globale Variable in einer Funktion
ƒƒ
ändern 150
Hot Dog-Programm 163
ƒƒ
_init_()-Methode 158
ƒƒ
Kartenspiel-Programm 339
ƒƒ
Kreis rückt in die Fenstermitte 191
ƒƒ
Kreis zeichnen 186
ƒƒ
Kunst mit draw.rect 194
ƒƒ
Kurven aus vielen kleinen Rechtecken
ƒƒ
196
Liste mit pickle in einer Datei speichern
ƒƒ
319
lokale Variable ausgeben 148
ƒƒ
444
Menü-Ereignishandler hinzufügen 282
ƒƒ
Mit Sprites mehrere Bälle auf den
ƒƒ
Bildschirm laden 213
Modul erstellen 173
ƒƒ
Modul verwenden 174
ƒƒ
Mondlandung 357
ƒƒ
Musik spielen 253
ƒƒ
Musik und Sound mit
ƒƒ
Lautstärkeregelung 255
Punkteverbinden 199
ƒƒ
Pygame-Fenster erstellen 183
ƒƒ
Pygame-Fenster offen halten 184
ƒƒ
Pygame-Fenster schließen 186
ƒƒ
PyPong 246
ƒƒ
PyPong mit Sound und Musik 262
ƒƒ
Quadrat- und Kubikzahlen ausgeben 290
ƒƒ
readline() mehrmals verwenden 313
ƒƒ
Schleifenvariablen in geschachtelten
ƒƒ
Schleifen 106
Schreibmodus für neue Dateien 317
ƒƒ
Schreibmodus für vorhandene Dateien
ƒƒ
317
Skier 97
ƒƒ
Sounds in Pygame ausprobieren 253
ƒƒ
Standardargumente 59
ƒƒ
Sternenblöcke, knifflige Version 106
ƒƒ
Sternenblöcke mit doppelt
ƒƒ
geschachtelten Schleifen 105
String mit raw_input() 46
ƒƒ
Tausendmal würfeln mit dem elfseitigen
ƒƒ
Würfel 331
Tausendmal würfeln mit zwei
ƒƒ
sechsseitigen Würfeln 332
Temperaturen umrechnen 48, 276
ƒƒ
Tippgeschwindigkeit 365
ƒƒ
variable, geschachtelte Schleife 104
ƒƒ
Verarbeitung 53
ƒƒ
Virtuelles Haustier 372
ƒƒ
Wasserball abprallen lassen 206
ƒƒ
Wasserball bewegen 202, 204
ƒƒ
Wasserball umbrechen 208
ƒƒ
Wer ist am coolsten 86
ƒƒ
while-Schleife 87
ƒƒ
Wurstkombinationen 109
ƒƒ
Wurstprogramm mit Kalorienzähler 112
ƒƒ
Zahlen raten mit EasyGui 60
ƒƒ
Zehnmal hintereinander Kopf 335
ƒƒ
Zeit mit pickle in einer Datei speichern
ƒƒ
367
Programmieren
Anweisung 66
ƒƒ
Index
auskommentieren 94
ƒƒ
Bedingung 63, 64
ƒƒ
Blatt des Spielers anzeigen 346
ƒƒ
Bottom-Up 343
ƒƒ
Codeblock 65
ƒƒ
Debugging 277
ƒƒ
Dokumentation 91
ƒƒ
einrücken 65, 66
ƒƒ
Entscheidungen 63
ƒƒ
Entscheidungsbaum 108
ƒƒ
Fehlerbehebung 94
ƒƒ
Funktionen 137
ƒƒ
Kommentare 91
ƒƒ
Module 137
ƒƒ
Objekte 137, 153
ƒƒ
Punktnotation 156
ƒƒ
Schleifenverarbeitung 76
ƒƒ
Stil 94
ƒƒ
Test 63
ƒƒ
Top-Down 343
ƒƒ
Wichtigkeit von Kommentaren 94
ƒƒ
Programmiersprachen
BASIC 382
ƒƒ
BBC BASIC 382
ƒƒ
C 379
ƒƒ
C++ 379
ƒƒ
Java 379
ƒƒ
Kids Programming Language 378
ƒƒ
KPL 378
ƒƒ
Logo 380
ƒƒ
Phrogram 378
ƒƒ
QBASIC 382
ƒƒ
Smalltalk 378
ƒƒ
Squeak Etoys 378
ƒƒ
Programmierstil 82
Property Editor-Eigenschaften
max 278
ƒƒ
min 278
ƒƒ
Property Editor (PythonCard) 267, 278
Prozent 33
Prozentzeichen, % 291, 295
Punkteverbinden 199
Punktnotation 156
.py 305, 309
Pygame 97, 182, 356, 380
Abwärts-Pfeil 231
ƒƒ
Animation 203
ƒƒ
Anzeige 187
ƒƒ
Argumente 193
ƒƒ
Aufwärts-Pfeil 231
ƒƒ
benutzerdefinierte Ereignisse 236
ƒƒ
Bilder 199
ƒƒ
blit 201
ƒƒ
clock.get_fps() 223
ƒƒ
clock.tick() 222
ƒƒ
colormixer.py 190
ƒƒ
draw 191
ƒƒ
draw.rect() 356
ƒƒ
Ereignisliste 233
ƒƒ
Ereignisschleife 183, 228
ƒƒ
Farben 189
ƒƒ
Fenster erstellen 183
ƒƒ
Fenster offen halten 184
ƒƒ
Fenster schließen 186
ƒƒ
flip() 187
ƒƒ
font 242
ƒƒ
font-Objekt 243, 356
ƒƒ
Formen zeichnen 186
ƒƒ
Framerate 223
ƒƒ
Größe 191
ƒƒ
Kollisionserkennung 217, 241
ƒƒ
Linienstärke 193
ƒƒ
Mailingliste 380
ƒƒ
Oberflächen 188
ƒƒ
pixelgenau 220
ƒƒ
Position 190
ƒƒ
pygame.draw.circle() 187
ƒƒ
pygame.draw.lines() 197
ƒƒ
pygame.draw.rect() 192
ƒƒ
pygame.event 230
ƒƒ
pygame.font 242
ƒƒ
pygame.mixer 250
ƒƒ
pygame.time.Clock() 222
ƒƒ
PyPong 238
ƒƒ
rect 191
ƒƒ
spritecollide() 219, 220
ƒƒ
Sprites 211
ƒƒ
Sprites gruppieren 217
ƒƒ
sys.exit() 186
ƒƒ
Tastennamen 233
ƒƒ
Textanzeige 242
ƒƒ
time 222
ƒƒ
time.delay() 221
ƒƒ
pygame.font 242
pygame.image.load() 201
pygame.mixer 250
initialisieren 252
ƒƒ
Musik 252
ƒƒ
Sound 252
ƒƒ
PyLogo 380
PyPong 238
Musik 261
ƒƒ
444
Index
Sounds 257
ƒƒ
Sound und Musik 262
ƒƒ
PyPong-Programm 241, 246
Python 379
3-D-Grafik 381
ƒƒ
Anführungszeichen 17
ƒƒ
Codeblock 65
ƒƒ
Dateiobjekt 310
ƒƒ
datetime 361
ƒƒ
Doppelstern 32
ƒƒ
EasyGui 53
ƒƒ
eingebaute Funktionen 39, 46
ƒƒ
Einrücken 66
ƒƒ
Einrückungskonvention 66
ƒƒ
Fehlerbehandlung 371
ƒƒ
Global Module Index 379
ƒƒ
help() 62
ƒƒ
Integerdivision 29
ƒƒ
Kommentare 91
ƒƒ
künftige Versionen 49
ƒƒ
Liste 79
ƒƒ
Module 53, 97, 172, 173
ƒƒ
Namenskonvention für Klassen 163
ƒƒ
Newline-Zeichen 287
ƒƒ
Numeric-Modul 182
ƒƒ
Objekte 117, 153, 296
ƒƒ
objektorientiert 153
ƒƒ
Online-Dokumentation 379
ƒƒ
os 366
ƒƒ
pickle 318
ƒƒ
print 286
ƒƒ
PyLogo 380
ƒƒ
PyOpenGL 380
ƒƒ
PythonCard 266
ƒƒ
Python-Standardbibliothek 178
ƒƒ
Pywinauto 381
ƒƒ
randint() 330
ƒƒ
Referenz 379
ƒƒ
Reihenfolge der Operationen 30
ƒƒ
RUR-PLE 380
ƒƒ
Speicherverwaltung 149
ƒƒ
Spezialmethoden 159
ƒƒ
Standardmodule 178
ƒƒ
Strings 296
ƒƒ
Syntax 214
ƒƒ
testen 63
ƒƒ
try-except 370
ƒƒ
turtle 380
ƒƒ
Tutorial 379
ƒƒ
unveränderlich 130
ƒƒ
van Rossum, Guido 379
ƒƒ
444
Variablen 23
ƒƒ
VPython 381
ƒƒ
win32com 382
ƒƒ
Windows 381
ƒƒ
Zeilenumbrüche 288
ƒƒ
PythonCard 266, 320
Background 271
ƒƒ
Button 267
ƒƒ
command 283
ƒƒ
component 267
ƒƒ
Dialogfeld 376
ƒƒ
Ereignishandler 271
ƒƒ
Ereignisse 272
ƒƒ
Gauge 369
ƒƒ
GUI 369
ƒƒ
Hotkey 280
ƒƒ
Image 369
ƒƒ
ImageButton 369
ƒƒ
Komponente 369
ƒƒ
Liste 272
ƒƒ
Mailingliste 379
ƒƒ
Menü 278
ƒƒ
Menu Editor 279
ƒƒ
Menü-Ereignishandler 281
ƒƒ
NewButton 267
ƒƒ
Objekt 270
ƒƒ
Property Editor 267, 278
ƒƒ
Resource Editor 267, 274, 278, 327
ƒƒ
Ressourcendatei 268
ƒƒ
self 272
ƒƒ
StaticText 369
ƒƒ
Timer 370
ƒƒ
wxPython 266
ƒƒ
Python-Datei, .py 305, 309
Python-Standardbibliothek 178
Pywinauto 381
Q
QBASIC 382
Quadrat- und Kubikzahlen ausgeben
QUIT 231
Quotient 32
R
randint() 330
random 180, 329
randint() 180
ƒƒ
random.choice() 322
range() 83, 84
raw_input() 45, 57
String 45
ƒƒ
290
Index
Zahlen bekommen 48
ƒƒ
readline() 312, 313
readlines() 311
rect-Methode, move() 215
Reihenfolge der Operationen 30
remove() 123, 336
rendern 243
Resource Editor 327
PythonCard 267, 274, 278
ƒƒ
Ressourcendatei 268
Rest 32
return 146
reverse() 127
reverse-Parameter 128
RGB 189
Robotik 378
Rumpf der Schleife 78
runde Klammern 31, 46, 49, 122, 125, 130,
141
Runden 292
Rundungsfehler 41, 320
Run in Terminal 183
Run without arguments 225
RUR-PLE 380
S
Schlange 228
Schleifen
Bedingung 76, 87
ƒƒ
break 89
ƒƒ
continue 88
ƒƒ
doppelt geschachtelte 105
ƒƒ
Endlosschleifen 78
ƒƒ
Ereignis 228
ƒƒ
geschachtelte 101, 109
ƒƒ
Iteration 78, 81, 101
ƒƒ
Liste 126
ƒƒ
mit range() 80
ƒƒ
Schleifenrumpf 78
ƒƒ
variabel und geschachtelt 104
ƒƒ
variable 103
ƒƒ
Variablenname 81
ƒƒ
Verarbeitung 76
ƒƒ
while 87
ƒƒ
Zählschleifen 76
ƒƒ
Schleifenvariablen
Namenskonvention 82
ƒƒ
schließen, Datei, close() 312, 316
Schlüsselwort
and 70
ƒƒ
class 270
ƒƒ
def 137
ƒƒ
elif 68, 101
ƒƒ
else 69
ƒƒ
for 76
ƒƒ
global 150
ƒƒ
if 65, 70, 101
ƒƒ
in 125, 300
ƒƒ
not 72
ƒƒ
or 71
ƒƒ
pass 169, 184
ƒƒ
return 146
ƒƒ
sort() 127
ƒƒ
while 87
ƒƒ
Schrägstrich / 28
schreiben 304
schreiben, Datei 315, 319
print 318
ƒƒ
Schreibmodus
für neue Dateien 317
ƒƒ
für vorhandene Dateien 317
ƒƒ
Schwerkraftsimulation 355
seek() 313
self 161, 272
Simulation 354
Schwerkraft 355
ƒƒ
Zeit 360
ƒƒ
Sinuskurve 195
Skier-Programm 97
SkiFree 96
sleep() 179
Slice, Abkürzung 120
Slice-Notation 120, 128
Slicing 119
Smalltalk 378
sort() 127
sorted() 130
Sound 250
abspielen 251
ƒƒ
Ausgabe 250
ƒƒ
Eingabe 250
ƒƒ
generieren 251
ƒƒ
in Pygame ausprobieren 253
ƒƒ
Lautstärke 254
ƒƒ
MP3-Dateien 251
ƒƒ
Musik 252
ƒƒ
Ogg Vorbis-Dateien 251
ƒƒ
pygame.mixer 252
ƒƒ
PyPong 257
ƒƒ
Schleifen 256
ƒƒ
Synthesizer 251
ƒƒ
Wave-Dateien 251
ƒƒ
444
Index
WMA-Dateien 251
ƒƒ
Soundclips 252
Sounddateien
.mp3 252, 305
ƒƒ
.ogg 252
ƒƒ
.wav 252
ƒƒ
.wma 252
ƒƒ
Soundeffekte 252
SPE 183, 185, 352
Speicherorte 306
Speicherverwaltung 147, 149
Spiele, Zufall 329
split() 296, 366
Split-Marker 297
ƒƒ
Whitespace 297
ƒƒ
Sprite 211, 356
spritecollide() 219, 220
ƒƒ
Sprite-Eigenschaften
image 212, 240
ƒƒ
rect 212
ƒƒ
Sprite-Gruppe 217
statt Liste 218
ƒƒ
Squeak Etoys 378
Standardargumente 59
Standardmodule 178
startswith() 299
Stern, * 178, 180
Steuerelemente 273
Stil 82, 94
__str__() 160
str() 39
Strg-Break 185
Strg-C 78, 185
Strg-Umschalt-R 225
String 22, 43, 45, 84, 310
drei Anführungszeichen 23
ƒƒ
mit raw_input() 46
ƒƒ
Teilstring 300
ƒƒ
Verkettung 22
ƒƒ
Stringmethoden 296
endswith() 299
ƒƒ
index() 300
ƒƒ
join() 298
ƒƒ
lower() 302
ƒƒ
split() 296
ƒƒ
startswith() 299
ƒƒ
strip() 301
ƒƒ
Suchen 298
ƒƒ
upper() 302
ƒƒ
Stringvariable, %s 291
Subtraktion 28
444
Surface.get_at() 199
Surface.set_at() 199
Symbol
& 280
ƒƒ
% 33
ƒƒ
Syntax 214
sys.exit() 186
T
Tabellen 131
Zugriff auf Werte 133
ƒƒ
Tabstop 289
Tabulatoren 110, 289
Tastaturereignis 229
Tausendmal würfeln
elfseitiger Würfel 331
ƒƒ
zwei sechsseitige Würfel 332
ƒƒ
Teilstring 300
Temperaturen umrechnen 48
Temperaturumrechnungsprogramm
Test 63
Textdateien 305, 313
tiefgestellte Zahl 35
time 179
sleep() 179
ƒƒ
time.delay() 221
timedelta 363, 364
time-Klasse 362
Timer 235, 370
Tippgeschwindigkeit 365
Top-Down 343
True 125, 225
try-except 370
except-Block 371
ƒƒ
try-Block 371
ƒƒ
Tupel 130
turtle 380
.txt 305
type() 42
Typkonvertierung 39
float() 39
ƒƒ
int() 39
ƒƒ
str() 39
ƒƒ
Typ, Tupel 130
U
überprüfen 346
ungleich 67, 73
Unterordner 307
Unterverzeichnisse 307
unveränderliche Variable 130
276
Index
upper() 302
uppercase 302
V
Validierungscode 346
van Rossum, Guido 379
Variablen 21, 23, 25, 116, 131
count 110
ƒƒ
dekrementieren 24, 34
ƒƒ
Geltungsbereich 147
ƒƒ
global 148, 150
ƒƒ
inkrementieren 24, 34
ƒƒ
lokale 148
ƒƒ
Namen 151
ƒƒ
nicht im Geltungsbereich 148
ƒƒ
Schleifen 82
ƒƒ
unveränderliche 130
ƒƒ
veränderliche 130
ƒƒ
Zähler 335
ƒƒ
Variablenname
Groß- und Kleinschreibung 25
ƒƒ
Regeln 25, 383
ƒƒ
Schleife 81
ƒƒ
veränderliche Variable 130
Verarbeitung 53
Vererbung 168
Vergleichsoperatoren 67
verwenden 68
ƒƒ
Verketten von Operatoren 67
Verkettung 22, 287, 297
Versuch
globale Variable in einer Funktion
ƒƒ
ändern 150
lokale Variable ausgeben 148
ƒƒ
Verzeichnisse 306
Unterverzeichnisse 307
ƒƒ
Verzeichnisstruktur 306
ƒƒ
virtuelles Haustier, GUI 369
Vorwärts-Schrägstrich, / 308
VPython 381
W
Wahrscheinlichkeit 329, 331, 333
Gedächtnis 330, 336
ƒƒ
Wasserball
abprallen lassen 206
ƒƒ
umbrechen 208
ƒƒ
Wasserball-Bild in einem Pygame-Fenster
anzeigen 200
Wave-Dateien 251
Werte zurückgeben 146
while 87, 184, 225
while-Schleife 87, 101, 184
Ereignisschleife 228
ƒƒ
Programm 87
ƒƒ
Test 87
ƒƒ
Whitespace 297, 301
Widgets 273
win32com 382
Windows Media Audio-Dateien 251
wissenschaftliche Notation 35
WMA-Dateien 251
Würfel 330
verschiedene Kombinationen 333
ƒƒ
zwei 331
ƒƒ
Wurstkombinationen 109
Wurstprogramm mit Kalorienzähler 112
wxPython 266, 376
X
x-Achse 190
xturtle 380
Y
y-Achse
190
Z
Zahlen 22
Zahlen raten mit EasyGui 60
Zähler 335
Zählschleifen 76, 79
Zehnmal hintereinander Kopf 335
Zeichen
– 28
ƒƒ
** 32
ƒƒ
/ 28
ƒƒ
# 92, 95
ƒƒ
+ 27
ƒƒ
= 29, 213
ƒƒ
Zeilenende-Kommentare 92
Zeit
Datum und Uhrzeit 361
ƒƒ
Delta 361, 363
ƒƒ
Echtzeit 361
ƒƒ
mit pickle in einer Datei speichern
ƒƒ
Zeitsimulation 360
ƒƒ
Zeitstempel 361
ƒƒ
Zufall 329
Zufallsereignis 330
Zufallsspiele 329
Zugriff auf Werte einer Tabelle 133
Zuweisungsoperator 29
367
444
Herunterladen