Python für Kids
von: Gregor Lingl
mitp Verlags GmbH & Co. KG, 2010
ISBN: 9783826684494
Sprache: Deutsch
464 Seiten, Download: 14842 KB
Format: PDF, auch als Online-Lesen
Python für Kids | 1 | ||
Inhaltsverzeichnis | 5 | ||
Vorwort | 13 | ||
Einleitung | 15 | ||
Dies ist ein Buch über Programmieren | 15 | ||
Ist dieses Buch das richtige für dich? | 15 | ||
Die Programmiersprache ist Python | 16 | ||
Turtle-Grafik | 17 | ||
Fehler | 18 | ||
Wie arbeitest du mit diesem Buch? | 18 | ||
Fragen und Aufgaben | 18 | ||
Arbeitsschritte | 19 | ||
Probleme, Notfälle, Vertiefungen | 19 | ||
Wichtige Stellen im Buch | 19 | ||
Programmentwürfe | 20 | ||
Muster | 20 | ||
Zwei wichtige Informationsquellen zum Buch | 20 | ||
Die CD-ROM zum Buch | 20 | ||
Die Website zum Buch: python4kids.net | 21 | ||
Beim Schreiben dieses Buches … | 22 | ||
Was ist Programmieren? | 23 | ||
Wozu dienen Programmiersprachen? | 23 | ||
Unser Werkzeug: die IDLE | 24 | ||
Die Arbeit mit dem interaktiven Python-Interpreter | 27 | ||
Rechnen | 27 | ||
sqrt ist eine Funktion | 30 | ||
Schreiben | 32 | ||
Dein erstes Programm | 34 | ||
Wir erweitern unser erstes Programm | 39 | ||
Syntax-Colouring: bunte Farben für den besseren Durchblick | 43 | ||
Mit Mustern arbeiten | 43 | ||
Zusammenfassung | 44 | ||
Zum Abschluss noch ein paar Übungsaufgaben ... | 45 | ||
... und ein paar Fragen | 47 | ||
Was Schildkröten mit Grafik zu tun haben: Turtle-Grafik | 49 | ||
Die Turtle und der IPI | 49 | ||
Wie macht die Turtle das? | 54 | ||
Hilfe! | 54 | ||
Ein rotes Quadrat | 55 | ||
Füllen – und auf die Spitze! | 58 | ||
Programmcode kopieren | 61 | ||
Und jetzt drei Dreiecke! | 64 | ||
Programm codieren | 67 | ||
Noch ein paar Turtle-Grafik-Funktionen | 68 | ||
Es müssen nicht immer Ecken sein | 70 | ||
Schildkröte verstecken! Und weitere Kleinigkeiten | 72 | ||
Zusammenfassung | 73 | ||
Funktionen aus dem Modul »turtle« | 73 | ||
Einige Aufgaben ... | 74 | ||
... und einige Fragen | 76 | ||
Namen | 77 | ||
Verschieden große Dreiecke | 77 | ||
Spielerei mit Namen | 79 | ||
Wir machen die Dreiecksseite variabel | 80 | ||
Dinge brauchen Namen | 83 | ||
Übung: Verschieden große Quadrate | 88 | ||
Und nun zu etwas ganz anderem | 91 | ||
Zahleneingaben | 93 | ||
Grafik-Programm mit Dialog | 95 | ||
Zusammenfassung | 99 | ||
Einige Aufgaben … | 100 | ||
… und einige Fragen: | 101 | ||
Wir erzeugen unsere eigenen Funktionen | 103 | ||
Vorbereitung – eine kleine Vereinfachung | 103 | ||
Wir (er)finden die Funktion dreieck | 105 | ||
Im Direktmodus Funktionen definieren | 106 | ||
Dreieck-Programm, heute neu | 108 | ||
Wie wird »dreieck07.py« ausgeführt? | 109 | ||
Noch ein Schritt weiter … | 110 | ||
Noch eine Idee … | 112 | ||
Welche ist die bessere Variante? | 115 | ||
Mini-Quiz | 116 | ||
Zunächst nur eine Frage | 121 | ||
Mini-Quiz erweitern | 122 | ||
Eine Funktion verwenden | 124 | ||
Mehrfachverzweigung | 127 | ||
Zusammenfassung | 130 | ||
Einige Aufgaben … | 131 | ||
… und einige Fragen | 132 | ||
Funktionen mit Parametern | 133 | ||
Noch einmal Dreiecke | 133 | ||
Das geht auch mit gefüllten Dreiecken | 138 | ||
Funktionen mit mehreren Parametern | 139 | ||
Dreiecksmuster | 142 | ||
jump() | 143 | ||
Ran ans Dreiecksmuster | 145 | ||
»jump()« ist auch für später nützlich | 146 | ||
Seifenoper | 149 | ||
Verwendung der print()-Funktion mit mehreren Argumenten | 150 | ||
Verkettung von Strings | 150 | ||
Formatierungsmarken und die format()-Methode | 151 | ||
Erklärende Variablennamen | 152 | ||
Zusammenfassung | 153 | ||
Einige Aufgaben … | 153 | ||
… und einige Fragen | 155 | ||
Von oben nach unten und zurück | 157 | ||
Aufgabenstellung: Yinyang | 157 | ||
Weg 1: Top-down. Programmieren ohne Computer | 158 | ||
Die Funktion »yin()« | 159 | ||
Die Funktion »yinfigur()« | 161 | ||
Die Funktion »punkt()« | 161 | ||
Weg 2: Bottom-up. Schrittweise von unten nach oben | 163 | ||
»jump()«, revisited | 175 | ||
Zusammenfassung | 176 | ||
Einige Aufgaben … | 177 | ||
… und einige Fragen | 178 | ||
Schleifen, die zählen | 179 | ||
Gestrichelte Linien | 179 | ||
Die Zählschleife mit »for« | 181 | ||
Faule Typen | 184 | ||
Weiter mit der for-Schleife … | 187 | ||
… und zurück zur gestrichelten Linie | 187 | ||
Dreiecke mit Schleife | 189 | ||
Die Funktion »len()« | 193 | ||
Eine Schleife für gefüllte Dreiecke | 195 | ||
Ein bisschen eleganter und ein bisschen vielseitiger | 199 | ||
Mini-Quiz umarbeiten | 200 | ||
Zusammenfassung | 205 | ||
Einige Aufgaben … | 206 | ||
… und einige Fragen | 206 | ||
Mehr Schleifen: Friedenslogo, Superrosette | 207 | ||
Friedenszeichen auf der Regenbogenfahne | 207 | ||
Die Regenbogenfahne | 209 | ||
Das Friedenslogo | 211 | ||
»tracer()« | 213 | ||
n-Ecke | 214 | ||
Wir machen daraus ein importierbares Modul | 217 | ||
Rosetten | 220 | ||
Farbenspiel | 223 | ||
Farben durch Zahlen festlegen | 224 | ||
Blau/Rot/Blau in einer Schleife | 225 | ||
Zusammenfassung | 227 | ||
Funktionen aus dem Modul »turtle« | 227 | ||
Einige Aufgaben … | 227 | ||
… und einige Fragen | 228 | ||
Der Zufall und bedingte Schleifen | 229 | ||
Eine torkelnde Turtle | 230 | ||
Der Zufallsgenerator »randint()« | 230 | ||
Torkeln | 232 | ||
»while«-Schleifen | 237 | ||
Zurück zum random walk | 241 | ||
Farbige Irrfahrten | 246 | ||
Zusammenfassung | 247 | ||
Neue Funktionen aus dem Modul »turtle« | 247 | ||
Einige Aufgaben ... | 247 | ||
… und einige Fragen | 248 | ||
Funktionen mit Wert | 249 | ||
Manche Funktionen geben Objekte zurück | 249 | ||
Wir definieren eine Funktion mit Rückgabewert | 251 | ||
Flächeninhalt und Umfang eines Rechtecks | 255 | ||
Eine Funktion, die einen String zurückgibt | 257 | ||
Der Nachfolger in einer Tischrunde | 259 | ||
Fak! | 260 | ||
Langzahlarithmetik | 264 | ||
Auch Funktionen sind Objekte | 265 | ||
Laufzeitmessung | 267 | ||
Was ist Nichts? | 270 | ||
Zusammenfassung | 272 | ||
Einige Aufgaben … | 273 | ||
… und einige Fragen | 274 | ||
Objekte und Methoden | 275 | ||
Sind Turtles Objekte? | 275 | ||
Vier dynamische Spiralen | 282 | ||
Sequenzen | 285 | ||
Erzeugen von Sequenzen durch Anschreiben der Elemente: | 286 | ||
Die Länge von Sequenzen | 287 | ||
Zugriff auf die Elemente von Sequenzen mit Indizes | 288 | ||
Erzeugen von Sequenzen mit den Operationen + und * | 290 | ||
Der logische Operator »in« | 293 | ||
Methoden von Sequenzen | 294 | ||
Methoden von Strings | 295 | ||
Methoden von Listen: | 297 | ||
Ändern von Listenelementen durch Zuweisungen | 299 | ||
Poppen von Listenelementen | 300 | ||
»krange()« | 302 | ||
»krange()« – als Generator … | 303 | ||
Wikipedia-Beispiel, revisited | 307 | ||
Screen() – ein Singleton | 307 | ||
List Comprehension | 309 | ||
Zusammenfassung | 312 | ||
Einige Aufgaben ... | 313 | ||
… und einige Fragen | 313 | ||
Wörterbücher, Dateien und der alte Cäsar | 315 | ||
Dictionaries | 315 | ||
Verschlüsseln | 320 | ||
Der Cäsar-Code | 320 | ||
Dateien | 326 | ||
Lesen von Dateien | 327 | ||
Aber wenn doch etwas schief läuft? | 328 | ||
Schreiben von Dateien | 330 | ||
Zusammenfassung | 331 | ||
Aufgaben … | 332 | ||
… und einige Fragen | 332 | ||
Ereignisgesteuerte Programme | 333 | ||
Ereignisse | 333 | ||
»screen.onclick(goto)« | 334 | ||
Scribble | 337 | ||
Zeichenstift steuern | 339 | ||
Kritzeln | 340 | ||
Gefüllte Flächen | 341 | ||
»undo()« und Tastatur-Ereignisse | 343 | ||
Strichdicke einstellen | 345 | ||
Farben | 348 | ||
Viel mehr Farben | 352 | ||
Hilfe | 355 | ||
Eine andere Sorte Ereignis: Timer | 357 | ||
Mach dir deine eigenen Turtle-Shapes | 359 | ||
Uhr | 361 | ||
Animation des Uhrzeigers | 365 | ||
Datum und Uhrzeit ermitteln | 366 | ||
Mehr Zeiger … | 368 | ||
Zusammenfassung | 369 | ||
Aufgaben … | 370 | ||
… und einige Fragen | 370 | ||
Neue Klassen definieren | 371 | ||
Turtles, die mehr können! | 371 | ||
Eine Unterklasse von Turtle | 376 | ||
Namen sind Schall und Rauch, aber auch wieder nicht! | 380 | ||
Der Konstruktor | 383 | ||
Noch ein einfaches Beispiel: Boten | 387 | ||
Da capo al fine! | 394 | ||
Zusammenfassung | 394 | ||
Eine Aufgabe | 395 | ||
… und nach diesem Kapitel keine Fragen | 395 | ||
Moorhuhn | 397 | ||
Das Spiel | 397 | ||
Zunächst zwei spezielle technische Details | 399 | ||
Die Bewegung der Hühner: Flug und Absturz | 399 | ||
Bilder und Turtle-Grafik | 401 | ||
Die Benutzeroberfläche, die Klasse MoorhuhnSpiel | 403 | ||
Die Spiellogik | 406 | ||
Die Klasse »Huhn« | 408 | ||
Schießen und treffen | 411 | ||
Fine tuning Moorhuhn | 415 | ||
Konstanten | 417 | ||
Cursor | 418 | ||
Töne | 419 | ||
Moorhuhn als selbstständig ausführbares Programm | 422 | ||
Anhang A | 427 | ||
Python installieren (Windows, Linux, Mac OS X) | 427 | ||
Installation von Python 3 unter Windows | 427 | ||
Installation von Python 3 unter Linux | 429 | ||
Installation von Python 3 unter Mac OS X | 430 | ||
Anpassung der Installation für die Arbeit mit dem Buch | 430 | ||
Anpassung für Windows ausführen: | 430 | ||
Anpassung für Linux ausführen – am Beispiel Ubuntu 9.04: | 432 | ||
Anpassung für Mac OS X ausführen: | 433 | ||
Anhang B | 435 | ||
Python-Programme ausführen | 435 | ||
Der Python-Interpreter … | 435 | ||
Ausführen von Python-Programmen mit python.exe | 435 | ||
Ausführen von Python-Programmen durch Doppelklick | 436 | ||
Ausführen von Python-Programmen mit grafischer Benutzeroberfläche (GUI) | 437 | ||
Anhang C | 437 | ||
Was in Python 2.x anders ist | 437 | ||
Anhang D | 440 | ||
Tkinter-Farben | 440 | ||
Anhang E | 441 | ||
Weitere Informationen zu Python | 441 | ||
Deutschsprachige Internetseiten zu Python | 441 | ||
Introducing Python | 442 | ||
Anhang F | 442 | ||
IDLE auf zwei Arten verwenden | 442 | ||
Der große Unterschied | 442 | ||
Anhang G | 444 | ||
Das Modul turtle.py: Die Referenz | 444 | ||
I. Funktionen für die Kontrolle der Turtle | 445 | ||
1. Turtle-Bewegung | 445 | ||
1.a Bewegen und zeichnen | 445 | ||
forward(distance) | fd | 445 | ||
back(distance) | bk | backward | 445 | ||
right(angle) | rt | 445 | ||
left(angle) | lt | 446 | ||
goto(x, y=None) | setpos | setposition | 446 | ||
setx(x) | 446 | ||
sety(y) | 446 | ||
setheading(to_angle) | seth | 446 | ||
circle(radius, extent=None, steps=None) | 446 | ||
dot(size=None, *color) | 447 | ||
home() | 447 | ||
stamp() | 447 | ||
clearstamp(stamp_id) | 447 | ||
clearstamps(n=None) | 447 | ||
undo() | 447 | ||
speed(speed=None) | 447 | ||
1.b Abfrage des Zustands der Turtle | 448 | ||
position() | pos | 448 | ||
towards(x, y=None) | 448 | ||
xcor() | 448 | ||
ycor() | 448 | ||
heading() | 448 | ||
distance(x, y=None) | 448 | ||
1.c Einstellungen und Maßeinheiten | 448 | ||
degrees(fullcircle=360.0) | 448 | ||
radians() | 448 | ||
2. Steuerung des Zeichenstiftes | 448 | ||
2.a Eigenschaften für das Zeichnen | 448 | ||
pendown() | pd | down | 448 | ||
penup() | pu | up | 449 | ||
pensize(width=None) | width | 449 | ||
pen(pen=None, **pendict) | 449 | ||
isdown() | 449 | ||
2.b Farben einstellen und abfragen | 449 | ||
color(*args) | 449 | ||
pencolor(*args) | 450 | ||
fillcolor(*args) | 450 | ||
2.c Füllen | 450 | ||
filling() | 450 | ||
begin_fill() | 450 | ||
end_fill() | 450 | ||
2.d Weitere Funktionen für die Grafik | 450 | ||
reset() | 450 | ||
clear() | 450 | ||
write(arg,move=False,align='left', font=('Arial',8,'normal')) | 450 | ||
3. Zustand der Turtle | 451 | ||
showturtle() | st | 451 | ||
hideturtle() | ht | 451 | ||
isvisible() | shownp | 451 | ||
shape(name=None) | 451 | ||
resizemode(rmode=None) | 451 | ||
shapesize(stretch_wid=None, stretch_len=None, outline=None) | turtlesize | 451 | ||
tiltangle(angle=None) | 451 | ||
tilt(angle) | 452 | ||
shearfactor(shear=None) | 452 | ||
shapetransform(t11=None, t12=None, t21=None, t22=None) | 452 | ||
get_shapepoly() | 452 | ||
4. Turtle-Ereignisse | 452 | ||
onclick(fun, btn=1) | 452 | ||
onrelease(fun, btn) | 452 | ||
ondrag(fun, btn) | 452 | ||
5. Spezielle Turtle-Funktionen | 453 | ||
begin_poly() | 453 | ||
end_poly() | 453 | ||
get_poly() | 453 | ||
clone() | 453 | ||
getturtle() | getpen | 453 | ||
getscreen() | 453 | ||
setundobuffer(size) | 453 | ||
undobufferentries() | 453 | ||
II. Funktionen für die Kontrolle des Turtle-Grafik-Fensters | 453 | ||
6. Fenster-Aktionen | 453 | ||
bgcolor(*args) | 453 | ||
bgpic(picname=None) | 453 | ||
clearscreen() | 454 | ||
resetscreen() | 454 | ||
screensize(canvwidth=None, canvheight=None, bg=None) | 454 | ||
setworldcoordinates(llx, lly, urx, ury) | 454 | ||
7. Kontrolle der Animation | 454 | ||
tracer(flag=None, delay=None) ! Methode des Grafik-Fensters ! | 454 | ||
update() | 454 | ||
delay(delay=None) | 454 | ||
8. Ereignisse des Grafik-Fensters | 455 | ||
listen(x=None, y=None) | 455 | ||
onkeyrelease(fun, key=None) | onkey | 455 | ||
onkeypress(fun, key=None) | onkeyrelease | 455 | ||
onscreenclick(fun, btn=1) | 455 | ||
ontimer(fun, t=0) | 455 | ||
mainloop() | 455 | ||
9. Einstellungen und spezielle Funktionen | 455 | ||
setup(width=0.5, height=0.75, startx=None, starty=None) | 455 | ||
mode(mode=None) | 456 | ||
colormode(cmode=None) | 456 | ||
getcanvas() | 456 | ||
getshapes() | 456 | ||
register_shape(name, shape=None) | addshape | 456 | ||
turtles() | 457 | ||
title(titlestring) | 457 | ||
window_height() | 457 | ||
window_width() | 457 | ||
bye() | 457 | ||
exitonclick() | 457 | ||
10. Eingabe-Funktionen | 457 | ||
textinput(title, prompt) | 457 | ||
numinput(title, prompt, default=None, minval=None, maxval=None) | 457 | ||
III. Die Datei »turtle.cfg« | 457 | ||
Stichwortverzeichnis | 459 |
Kategorien
Kategorien
Service
Info/Kontakt