Warren D. Sande, Carter Sande
Hello World!
Programmieren für Kids und andere Anfänger
Inhalt
9
Vorwort
17
Was ist Programmieren?
17
Python – eine Sprache für uns und den Computer
18
Wozu soll ich Programmieren lernen?
19
Warum Python?
20
Die lustigen Sachen
21
Das ist neu in der zweiten Auflage
22
Danksagungen
23
Danksagungen für die zweite Auflage
24
Über dieses Buch
25
Was du brauchst
25
Was du nicht brauchst
26
Carter sagt
27
An Eltern und Lehrer
28
1 Erste Schritte
29
Python installieren
29
Python mit IDLE starten
31
Anweisungen bitte
32
Mit Python interagieren
34
Programmierzeit
36
Das erste Programm ausführen
37
Wenn etwas schiefgeht
38
Dein zweites Programm
41
2 Merk’s dir – Speicher und Variablen
44
Eingabe, Verarbeitung, Ausgabe
44
Namen
46
Was ist ein Name?
50
Zahlen und Strings
51
Wie „variabel“ sind sie?
52
Das neue Ich
53
3 Einfache Mathematik
56
Die vier Grundrechenarten
56
Operatoren
59
Punktrechnung vor Strichrechnung
59
Zwei weitere Operatoren
61
Sehr große und sehr kleine Zahlen
63
4 Datentypen
68
Typen ändern
68
Mehr Informationen mit type().
71
Typumwandlungsfehler
72
Anwendung von Typumwandlungen
72
5 Eingabe
74
raw_input().
75
Der print-Befehl und das Komma
76
Zahlen eingeben
78
Eingabe aus dem Internet
80
6 GUIs – Grafische Benutzeroberflächen
83
Was ist eine GUI?
83
Unsere erste GUI
83
GUI-Eingabe
85
Welches Eis hättest du gerne?
86
Nochmal Zahlen raten
90
Andere GUI-Teile
91
7 Immer diese Entscheidungen
93
Test, Test
93
Einrücken
95
Seh’ ich jetzt schon doppelt?
96
Andere Arten von Tests
97
Was passiert, wenn der Test „falsch“ ergibt?
98
Mehrere Bedingungen testen
100
Das Schlüsselwort „and“
101
Das Schlüsselwort „or“
102
Das Schlüsselwort „not“
102
8 Schleifen
106
Zählschleifen
106
Verwendung von Zählschleifen
109
Eine Abkürzung: range().
110
Eine Sache des Stils – Namen von Schleifenvariablen
112
Zählen in Schritten
115
Zählen mit Zahlen
117
Da wir gerade dabei sind …
117
Ausstieg aus einer Schleife – break und continue.
118
9 Nur für dich – Kommentare
122
Kommentare hinzufügen
122
Einzeilige Kommentare
123
Zeilenende-Kommentare
123
Mehrzeilige Kommentare
123
Strings mit drei Anführungszeichen
124
Kommentierstil
125
Kommentare in diesem Buch
125
Auskommentieren
125
10 Zeit zum Spielen
127
Skier
127
11 Geschachtelte und variable Schleifen
132
Geschachtelte Schleifen
132
Variable Schleifen
134
Variable, geschachtelte Schleifen
135
Noch mehr variable, geschachtelte Schleifen
137
Verwendung von geschachtelten Schleifen
138
12 Listen und Wörterbücher
146
Was ist eine Liste?
146
Eine Liste erstellen
147
Elemente in eine Liste einfügen
147
Wozu der Punkt?
148
Listen können alles Mögliche speichern
149
Elemente von einer Liste abrufen
149
Listen in Scheiben schneiden: „Slicing“
150
Elemente ändern
152
Andere Möglichkeiten der Listenerweiterung
153
Elemente aus einer Liste löschen
155
Eine Liste durchsuchen
156
Eine Liste per Schleife durchlaufen
158
Listen sortieren
158
Veränderlich und unveränderlich
162
Listen von Listen: Tabellen
163
Wörterbücher
166
13 Funktionen
173
Funktionen – die Bausteine
173
Eine Funktion aufrufen
175
Argumente an eine Funktion übergeben
177
Funktionen mit mehreren Argumenten
179
Funktionen, die einen Wert zurückgeben
181
Geltungsbereich von Variablen
183
Globale Variablen erzwingen
186
Tipps zur Benennung von Variablen
187
14 Objekte
189
Objekte im wirklichen Leben
190
Objekte in Python
190
Objekt = Attribute + Methoden
191
Was soll der Punkt?
192
Objekte erstellen
192
Eine Beispielklasse – HotDog
198
Die Daten verbergen
202
Polymorphismus und Vererbung
203
Vorausdenken
205
15 Module
208
Was ist ein Modul?
208
Warum Module verwenden?
208
Eimerweise Legosteine
209
Wie werden Module erstellt?
209
Wie werden Module verwendet?
210
Namensräume
211
Standardmodule
214
16 Grafik
218
Hilfe holen – Pygame
218
Ein Pygame-Fenster
218
In das Fenster zeichnen
220
Einzelne Pixel
230
Bilder
235
Jetzt kommt Bewegung in die Sache!
237
Animation
238
Weichere Animationen
240
Den Ball abprallen lassen
241
Den Ball umbrechen
244
17 Sprites und Kollisionserkennung
247
Sprites
247
Peng! Kollisionserkennung
253
Die Zeit messen
257
18 Eine neue Eingabeart: Ereignisse
262
Ereignisse
262
Tastaturereignisse
264
Mausereignisse
269
Timer-Ereignisse
271
Zeit für noch ein Spiel: PyPong
274
19 Sound
286
Pygame hilft – mit dem mixer.
286
Sounds erzeugen oder Sounds abspielen
287
Sounds abspielen
287
Lautstärke regeln
290
Musik wiederholen
292
Sounds für PyPong
293
Noch mehr coole Sounds
294
Musik für PyPong
297
20 Noch mehr GUIs
302
Mit PyQt arbeiten
302
Action in der GUI
307
Die Rückkehr der Ereignishandler
310
Den Button bewegen
311
Weitere nützliche GUIs
311
TempGUI
312
Was steht auf dem Menü?
318
21 Ausgabeformatierung und Strings
325
Neue Zeilen
326
Horizontale Abstände: Tabulatoren
328
Variablen in Strings einfügen
330
Zahlenformatierung
331
Formatieren – der neue Weg
337
Strings und so
338
22 Ein- und Ausgabe mit Dateien
347
Was ist eine Datei?
348
Dateinamen
348
Speicherorte
349
Eine Datei öffnen
353
Eine Datei lesen
354
Text- und Binärdateien
357
Schreiben in eine Datei
358
Daten in Dateien speichern: pickle.
362
Es ist mal wieder Spielzeit: Galgenmännchen
364
23 Das Zufallsprinzip
372
Was ist Zufall?
372
Würfeln
373
Ein Kartenspiel erstellen
379
Crazy Eights – Verrückte Achter
383
24 Computersimulationen
397
Die Realität modellieren
397
Mondlandung
398
Die Zeit festhalten
403
Zeitobjekte
404
Die Zeit in einer Datei speichern
409
Ein virtuelles Haustier
410
25 So entsteht der Skiläufer
422
Der Skiläufer
422
Die Hindernisse
426
26 Python Battle
436
Python Battle
436
Einen Roboter für Python Battle erstellen
438
Ein komplizierterer Roboter
440
Das Koordinatensystem
441
27 Und wie geht's weiter?
446
Für jüngere Programmierer
446
Python
447
Spieleprogrammierung und Pygame
447
Weitere Spieleprogrammierung (aber nicht mit Python)
448
BASIC
448
Apps fürs Handy
448
Schau dich um
449
Anhang A: Regeln für Variablennamen
450
Anhang B: Unterschiede zwischen Python.2 und 3
452
Anhang C: Lösungen zu den Übungen
456
Verzeichnis der Listings
488
Index
491
Listing.1.1 Unser erstes richtiges Programm
36
Listing.1.2 Zahlen raten
41
Listing.5.1 Einen String mit raw_input() bekommen
75
Listing.5.2 Was tut das Komma?
76
Listing.5.3 Temperaturen umrechnen mit raw_input()
78
Listing.5.4 Eingabe aus einer Datei im Internet
80
Listing.6.1 Eingabe mit Buttons
86
Listing.6.2 Eingabe mit Choicebox
87
Listing.6.3 Eingabe mit Enterbox
88
Listing.6.4 So werden Standardargumente angelegt
89
Listing.6.5 Zahlen raten mit EasyGui
90
Listing.7.1 Verwendung der Vergleichsoperatoren
98
Listing.8.1 Eine ganz einfache for-Schleife
107
Listing.8.2 Bei jedem Durchlauf durch die for-Schleife geschieht etwas Anderes
108
Listing.8.3 Die Achterreihe ausgeben
109
Listing.8.4 Eine Schleife mit range()
110
Listing.8.5 Mit range() das kleine Einmaleins mit 8 erhalten
112
Listing.8.6 Bereit zum Abheben?
116
Listing.8.7 Wer ist ein super Typ?
117
Listing.8.8 Eine Bedingungsschleife (oder while-Schleife)
118
Listing.8.9 Verwendung von continue in einer Schleife
119
Listing.10.1 Skier
128
Listing.11.1 Drei Multiplikationstabellen auf einmal ausgeben
133
Listing.11.2 Eine variable, geschachtelte Schleife
135
Listing.11.3 Sternenblöcke mit doppelt geschachtelten Schleifen
136
Listing.11.4 Eine kniffligere Version der Sternenblöcke
137
Listing.11.5 Schleifenvariablen in geschachtelten Schleifen ausgeben
137
Listing.11.6 Wurstkombinationen
140
Listing.11.7 Das Wurstprogramm mit Kalorienzähler
143
Listing.13.1 Eine Funktion erstellen und benutzen
174
Listing.13.2 Ein Argument an eine Funktion übergeben
177
Listing.13.3 Funktionen mit zwei Argumenten
180
Listing.13.4 Eine Funktion erstellen und verwenden, die einen Wert zurückgibt
183
Listing.13.5 Versuch, eine lokale Variable auszugeben
184
Listing.13.6 Eine globale Variable in einer Funktion verwenden
185
Listing.13.7 Versuch, eine globale Variable in einer Funktion zu ändern
186
Listing.14.1 Eine einfache Ball-Klasse
192
Listing.14.2 Die Ball-Klasse verwenden
193
Listing.14.3 Eine __init__()-Methode hinzufügen
194
Listing.14.4 Mit __str__() die Ausgabe des Objekts ändern
196
Listing.14.5 Der Anfang unseres Hot Dog-Programms
199
Listing.14.6 Die Klasse HotDog mit braten(), zutatHinzufuegen() und __str__()
200
Listing.15.1 Ein Modul erstellen
209
Listing.15.2 Ein Modul verwenden
210
Listing.15.3 Das Programm zum Schlafen schicken
215
Listing.16.1 Ein Pygame-Fenster erstellen
219
Listing.16.2 Das Pygame-Fenster korrekt arbeiten lassen
219
Listing.16.3 Einen Kreis zeichnen
220
Listing.16.4 Der Kreis rückt in die Fenstermitte
225
Listing.16.5 Moderne Kunst mit draw.rect
228
Listing.16.6 Moderne Kunst mit Farbe
229
Listing.16.7 Kurven aus vielen kleinen Rechtecken zeichnen
231
Listing.16.8 Eine durchgehende Sinuskurve
232
Listing.16.9 Das geheimnisvolle Punkteverbinden
234
Listing.16.10 Ein Wasserball-Bild in einem Pygame-Fenster anzeigen
235
Listing.16.11 Wir versuchen, den Wasserball zu bewegen
238
Listing.16.12 Nächster Versuch, einen Wasserball zu bewegen
239
Listing.16.13 Den Wasserball geschmeidig bewegen
240
Listing.16.14 Einen Wasserball abprallen lassen
242
Listing.16.15 Ballspiel in 2-D
243
Listing.16.16 Den Wasserball umbrechen
244
Listing.17.1 Mit Sprites mehrere Bälle auf den Bildschirm laden
249
Listing.17.2 Bälle mithilfe von Sprites bewegen
252
Listing.17.3 Eine Sprite-Gruppe statt einer Liste verwenden
254
Listing.17.4 Clock und get_fps() im Wasserballprogramm
260
Listing.18.1 Das Ball-Programm mit Sprites und uhr.tick()
265
Listing.18.2 Ball mit Aufwärts- und Abwärts-Pfeil
267
Listing.18.3 Den Ball mit einem Timer-Ereignis auf und ab bewegen
273
Listing.18.4 Die erste Version von PyPong
277
Listing.18.5 Das endgültige PyPong-Programm
282
Listing.19.1 Sounds in Pygame ausprobieren
289
Listing.19.2 Musik spielen
289
Listing.19.3 Musik und Sound mit Lautstärkeregelung
291
Listing.19.4 Das Ende des Songs abwarten
292
Listing.19.5 PyPong mit Sound und Musik
298
Listing.20.1 Dieser PyQt-Code ist mindestens nötig
308
Listing.20.2 Einen Ereignishandler für den Button aus Listing.20.1 einfügen
309
Listing.20.3 Programm zur Temperaturumrechnung
316
Listing.20.4 Vollständiges Programm zur Temperaturumrechnung mit Menüs
321
Listing.21.1 Ein Programm, das Quadrat- und Kubikzahlen ausgibt
329
Listing.22.1 Datei öffnen und lesen
355
Listing.22.2 readline() mehrmals verwenden
356
Listing.22.3 Anfügenmodus verwenden
360
Listing.22.4 Schreibmodus für neue Dateien
360
Listing.22.5 Schreibmodus für vorhandene Dateien
361
Listing.22.6 Eine Liste mit pickle in einer Datei speichern
363
Listing.22.7 Dateien mit load() entpickeln
363
Listing.22.8 Das komplette Galgenmännchen-Programm
368
Listing.23.1 Tausendmal würfeln mit dem elfseitigen Würfel
374
Listing.23.2 Tausendmal würfeln mit zwei sechsseitigen Würfeln
375
Listing.23.3 Zehnmal hintereinander Kopf
378
Listing.23.4 Die Klasse Card
381
Listing.23.5 Ein Kartenspiel erstellen
382
Listing.23.6 Die Hauptschleife von Crazy Eights
385
Listing.23.7 Das Blatt des Spielers anzeigen
389
Listing.23.8 Der Spielzug des Spielers
390
Listing.23.9 Neue Farbe erfragen, wenn der Spieler eine 8 ablegt
391
Listing.23.10 Der Spielzug des Computers
392
Listing.23.11 Die Hauptschleife inklusive Punktständen
394
Listing.24.1 Mondlandung
400
Listing.24.2 Zeitdifferenzen messen: Tippgeschwindigkeit
408
Listing.24.3 Die Zeit mit pickle in einer Datei speichern
410
Listing.24.4 VirtuellesHaustier.py
416
Listing.25.1 Das Skiläufer-Spiel erstellen – nur der Skiläufer
425
Listing.25.2 Das Skiläufer-Spiel erstellen – nur die Hindernisse
429
Listing.25.3 Skiläufer und Hindernisse zusammen
431
Listing.26.1 Die vollständige Roboter-KI
440
Listing.26.2 Ein komplizierterer Roboter
443
© 2009-2024 ciando GmbH