Hello World! - Programmieren für Kids und andere Anfänger
von: Warren D. Sande, Carter Sande
Carl Hanser Fachbuchverlag, 2014
ISBN: 9783446438149
Sprache: Deutsch
501 Seiten, Download: 26127 KB
Format: PDF, auch als Online-Lesen
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 |
Kategorien
Kategorien
Service
Info/Kontakt