Programmieren lernen von Kopf bis Fuß (eBook)
638 Seiten
O'Reilly Verlag
978-3-96010-186-4 (ISBN)
Eric Freeman ist Informatiker und begeistert sich für Software- und Medienarchitektur. Er hat vier Jahre in einem Traumjob bei Disney.com gearbeitet, wo er ein Projekt zu Breitbandinternet und drahtloser Übertragung geleitet hat. Er arbeitet als Autor, programmiert coole Software und betätigt sich als Java- und Mac-Hacker. Einen großen Teil der 90er-Jahre hat Eric damit verbracht, sich gemeinsam mit David Gelernter mit Alternativen zur Desktop-Metapher zu beschäftigen (und noch heute fragen beide: 'Warum muss ich einer Datei einen Namen geben?'). Auf der Grundlage dieser Arbeiten promovierte Eric 1997 an der Yale University. Er hat außerdem Mirror Worlds Technologies mit begründet, um dort Lifestreams, eine kommerzielle Version seiner Dissertation, zu entwickeln. In einem früheren Leben hat Eric Software für Netzwerke und Supercomputer entwickelt. Vielleicht kennen Sie ihn aus Büchern wie 'JavaSpaces Principles, Patterns and Practice'. Er denkt gern an die Implementierung von Tupelraum-Systemen auf Thinking Machine CM-5-Rechnern und an den Aufbau einiger der ersten Internetinformationssysteme für die NASA in den späten 80er-Jahren zurück.
Eric Freeman ist Informatiker und begeistert sich für Software- und Medienarchitektur. Er hat vier Jahre in einem Traumjob bei Disney.com gearbeitet, wo er ein Projekt zu Breitbandinternet und drahtloser Übertragung geleitet hat. Er arbeitet als Autor, programmiert coole Software und betätigt sich als Java- und Mac-Hacker. Einen großen Teil der 90er-Jahre hat Eric damit verbracht, sich gemeinsam mit David Gelernter mit Alternativen zur Desktop-Metapher zu beschäftigen (und noch heute fragen beide: "Warum muss ich einer Datei einen Namen geben?"). Auf der Grundlage dieser Arbeiten promovierte Eric 1997 an der Yale University. Er hat außerdem Mirror Worlds Technologies mit begründet, um dort Lifestreams, eine kommerzielle Version seiner Dissertation, zu entwickeln. In einem früheren Leben hat Eric Software für Netzwerke und Supercomputer entwickelt. Vielleicht kennen Sie ihn aus Büchern wie "JavaSpaces Principles, Patterns and Practice". Er denkt gern an die Implementierung von Tupelraum-Systemen auf Thinking Machine CM-5-Rechnern und an den Aufbau einiger der ersten Internetinformationssysteme für die NASA in den späten 80er-Jahren zurück.
Der Autor 5
Inhaltsverzeichnis 6
Einführung 22
Für wen ist dieses Buch? 23
Wir wissen, was Sie gerade denken. 24
Lies mich! 29
Sie müssen Python installieren 31
Ein paar Worte zur Organisation Ihres Codes 33
Danksagungen* 34
Das Gutachterteam 35
Über den Übersetzer dieses Buchs 36
1 Rechnerisch denken 38
Immer der Reihe nach 39
Wie Programmieren funktioniert 43
Sprechen wir überhaupt die gleiche Sprache? 44
Die Welt der Programmiersprachen 45
Code mit Python schreiben und ausführen 50
Eine kurze Geschichte von Python 52
Python auf Herz und Nieren prüfen 55
Ihre Arbeit speichern 57
Herzlichen Glückwunsch zu Ihrem ersten Python-Programm! 58
Phrasendrescher 62
Den Code in die Maschine bekommen 63
2 Einfache Werte, Variablen und Typen 70
Einen Rechner für Hundejahre programmieren 71
Pseudocode in richtigen Code umwandeln 73
Schritt 1: Eingaben einsammeln 74
Wie die input-Funktion funktioniert 75
Variablen verwenden, um Werte zu erinnern und zu speichern 75
Benutzereingabe einer Variablen zuweisen 76
Schritt 2: Weitere Eingaben einsammeln 76
Zeit, unseren Code auszuführen 77
Etwas Code eingeben 80
Ein genauer Blick auf Variablen 81
Etwas mehr Ausdruck 82
Variablen sind VARIABEL 83
Besser leben durch Operatoren-Präzedenz 84
Rechnen mit Operatoren-Präzedenz 85
Finger von der Tastatur! 88
Step 3: Das Alter des Hundes berechnen 89
Houston, wir haben ein Problem! 90
Fehler sind menschlich gehören zum Programmieren dazu 91
Etwas mehr Debugging … 93
Welcher Python-(Daten-)Typ sind Sie? 95
Den Code reparieren 96
Houston, wir sind abgehoben. 97
Schritt 4: Benutzerfreundliche Ausgaben 98
3 Boolesche Werte, Entscheidungen und Schleifen 110
Wollen Sie ein Spiel spielen? 111
Zuerst ein allgemeines Konzept 113
Die Wahl des Computers 114
Wie Zufallszahlen genutzt werden 115
Vorstellung des booleschen Datentyps 118
Entscheidungen treffen 119
Entscheidungen und noch mehr Entscheidungen 120
Zurück zu Stein, Schere, Papier 121
Die Wahl des Benutzers ermitteln 122
Ein Blick auf die Wahl des Benutzers 125
Den Code zum Finden eines Unentschiedens einbauen 126
Wer hat gewonnen? 127
Implementieren wir die Spiellogik 129
Mehr über boolesche Operatoren 130
Ist das dokumentiert? 135
Den Code mit Kommentaren versehen 136
Wir müssen das Spiel endlich fertigstellen! 137
Woher wissen wir, ob eine Benutzereingabe ungültig ist? 138
Den Ausdruck überprüfen und aufräumen 139
Den Benutzer immer wieder zur Eingabe auffordern 141
Dinge mehr als einmal tun 142
Wie die while-Schleife funktioniert 143
while benutzen, um den Benutzer zur Eingabe aufzufordern, bis eine gültige Auswahl getroffen wurde 147
Glückwunsch! Sie haben Ihr erstes Spiel programmiert! 149
4 Listen und Iterationen 162
Können Sie Bubbles-R-Us helfen? 163
Mehrere Werte in Python darstellen 164
Wie Listen funktionieren 165
Wie lang ist die Liste eigentlich? 168
Auf das letzte Listenelement zugreifen 169
Python macht das sogar noch einfacher 169
Pythons negative Indizes benutzen 170
In der Zwischenzeit bei Bubbles-R-Us … 172
Wie man über eine Liste iteriert 175
Den Ausgabefehler beseitigen 176
Den Ausgabefehler wirklich beseitigen 177
Die for-Schleife – der bevorzugte Weg zum Iterieren über eine Liste 179
Die for-Schleife mit einer Zahlenfolge benutzen 182
Mehr tun mit Zahlenfolgen 183
Die Einzelteile zusammensetzen 185
Eine komplett neue Liste erstellen 193
Mit Listen geht noch mehr 194
Probefahrt für den fertigen Bericht 198
Und die Gewinner sind … 198
Probefahrt für die kosteneffektivste Seifenblasenmischung 202
5 Funktionen und Abstraktion 216
Was stimmt denn mit dem Code nicht? 218
Einen Codeblock in eine FUNKTION umwandeln 220
Wir haben eine Funktion erstellt, aber wie können wir sie benutzen? 221
Aber wie funktioniert das wirklich? 221
Funktionen können auch Dinge ZURÜCKGEBEN 229
Funktionen mit Rückgabewerten aufrufen 230
Ein bisschen Refaktorierung zwischendurch 232
Den Code ausführen 233
Den Avatar-Code abstrahieren 234
Den Körper der get attribute-Funktion schreiben 235
get_attribute aufrufen 236
Wir sollten noch etwas mehr über Variablen sprechen … 238
Den Geltungsbereich von Variablen verstehen 239
Wenn Variablen an Funktionen übergeben werden … 240
Die drink_me-Funktion aufrufen 241
Was ist mit der Verwendung globaler Variablen in Funktionen? 244
Mehr zu Parametern: Standardwerte und Schlüsselwörter 247
Wie Standardwerte funktionieren 247
Geben Sie erforderliche Parameter immer zuerst an! 248
Argumente mit Schlüsselwörtern verwenden 249
Wie man diese Optionen einordnen sollte 249
4, Teil 2, Sortierung und verschachtelte Iteration 262
Bubble Sort verstehen 265
Wir beginnen mit Durchgang 1: 265
Etwas Bubble Sort-Pseudocode 268
Bubble Sort in Python implementieren 271
Die Nummern der Seifenblasenmischungen berechnen 273
6 Text, Strings und Heuristiken 282
Willkommen zu den Datenwissenschaften 283
Wie berechnet man einen Lesbarkeitsindex? 284
Der große Plan 285
Ein bisschen Pseudocode 286
Wir brauchen etwas Text zur Analyse 287
Die Funktion erstellen 289
Als Erstes brauchen wir die Anzahl der Wörter in unserem Text 290
Die Anzahl der Sätze berechnen 294
Die count_sentences-Funktion schreiben 295
Die Anzahl der Silben zählen – oder: Heuristiken lieben lernen 301
Die Heuristik vorbereiten 304
Die Heuristik schreiben 305
Wie man Vokale zählt 306
Aufeinanderfolgende Vokale ignorieren 306
Den Code zum Ignorieren aufeinanderfolgender Vokale schreiben 307
Die Buchstaben e und y sowie Interpunktionszeichen am Satzende entfernen 309
Slicing (und Substrings) benutzen 311
Den heuristischen Code fertigstellen 313
Die Formel für den Lesbarkeitsindex implementieren 315
Und noch mehr 320
7 Module, Methoden, Klassen und Objekte 328
Ein schneller Rückblick auf Module 331
Die globale Variable _name_ 333
analyze.py aktualisieren 334
analyze.py als Modul benutzen 336
analyze.py mit Docstrings versehen 338
Andere Python-Module erforschen 342
Moment mal. Haben Sie gerade »Schildkröten« gesagt?! 343
Erschaffen Sie Ihre eigene Schildkröte! 345
Tierversuche mit Schildkröten 346
Eine zweite Schildkröte hinzufügen 348
Was sind diese Schildkröten überhaupt? 351
Was sind Objekte? 352
Okay, und was ist eine Klasse? 353
Eine Klasse ist kein Objekt. Sie wird verwendet, um Objekte zu erzeugen. 353
Objekte und Klassen verwenden 355
Worum geht es bei den Methoden und Attributen? 356
Klassen und Objekte überall 357
Bereitmachen zum Schildkrötenrennen 359
Das Spiel planen 360
Fangen wir mit dem Programmieren an 361
Das Spiel vorbereiten 361
Den Setup-Code schreiben 362
Nicht so schnell! 363
Das Rennen beginnen 365
8 Rekursion und Dictionaries 378
Eine andere Art, Dinge zu berechnen 379
Kommen wir jetzt zu etwas völlig anderem … 380
Schreiben wir etwas Code für beide Fälle 381
Etwas mehr Übung 384
Rekursion zum Finden von Palindromen benutzen 385
Einen rekursiven Palindrom-Detektor schreiben 386
Das Unsoziale Netzwerk 397
Das Dictionary 399
Sehen wir, wie ein Dictionary erstellt wird. 399
Schlüssel und Werte müssen keine Strings sein. 400
Natürlich können Sie die Schlüssel auch wieder entfernen. 400
Vielleicht wollen Sie aber zuerst überprüfen, ob er überhaupt existiert. 400
Kann man über Dictionaries auch iterieren? 401
Dictionaries für das Unsoziale Netzwerk einsetzen 403
Aber wie fügen wir weitere Attribute hinzu? 405
Erinnern Sie sich an das Killer-Feature unseres Unsozialen Netzwerks? 407
Den unsozialsten Benutzer finden 408
Können wir uns die Ergebnisse der Funktionsaufrufe nicht einfach merken? 413
Ein Dictionary zum Speichern der Fibonacci-Ergebnisse 413
Etwas gegen teure Berechnungen: Memoisation 414
Ein genauer Blick auf die koch-Funktion 417
Das Koch-Fraktal eingehend erforschen 419
9 Dateien speichern und auslesen 430
Bereit für Crazy Libs? 431
Wie Crazy Libs funktionieren soll 433
Schritt 1: Text der Geschichte aus einer Datei lesen 436
Dateipfade richtig benutzen 437
Relative Pfade 437
Absolute Pfade 438
Oh, und vergessen Sie nicht, wieder aufzuräumen, wenn Sie fertig sind. 439
Dateien im Python-Code lesen 440
Jetzt hör schon auf! 443
Verwendung der readline-Methode am Dateiobjekt 444
Woher wissen wir, wann die letzte Zeile gelesen wurde? 446
Eine Crazy Lib-Schablone einlesen 447
Den Schablonentext verarbeiten 448
Den Bug mit einer neuen Stringmethode beseitigen 450
Den Bug tatsächlich beheben 451
Der eine oder andere Code hat echte Probleme 452
Mit Ausnahmen umgehen 454
Ausdrücklich mit Ausnahmen umgehen 455
Crazy Libs aktualisieren, um mit Ausnahmen umzugehen 457
Unser letzter Schritt: Das Crazy Lib speichern 458
Den Rest des Code aktualisieren 458
10 Web-APIs benutzen 472
Erweitern Sie Ihre Reichweite mit Web-APIs 473
Die Funktionsweise von Web-APIs 474
Alle Web-APIs besitzen eine Webadresse 475
Zeit für ein schnelles Upgrade 478
Das Upgrade durchführen 479
Jetzt brauchen wir nur noch eine gute Web-API ... 480
Ein genauerer Blick auf die API 481
Web-APIs verwenden JSON für die Rückgabe der Daten 482
Sehen wir uns das requests-Modul noch einmal an 484
Die Einzelteile zusammensetzen: einen Request an Open Notify verschicken 486
JSON in Python verarbeiten 487
Das JSON-Modul zum Auslesen der ISS-Daten benutzen 488
Wir brauchen etwas mehr Grafik 489
Das screen-Objekt 490
Wir benutzen eine Schildkröte, um die ISS darzustellen 492
Schildkröten können auch wie Weltraumstationen aussehen 493
Vergessen Sie die ISS. Wo sind WIR? 494
Den ISS-Code fertigstellen 495
11 Widgets, Events und emergentes Verhalten 504
Willkommen in der WUNDERVOLLEN WELT des KÜNSTLICHEN LEBENS 505
Eine genauerer Blick auf das Spiel des Lebens 506
Was wir bauen werden 509
Haben wir das richtige Design? 510
Das Datenmodell (Model) entwickeln 514
Das Raster im Code abbilden 514
Eine Generation des Spiels des Lebens berechnen 515
Das Schicksal aller Zellen berechnen 515
Den Model-Code fertigstellen 519
Den View erstellen 522
Das erste Widget erstellen 523
Die fehlenden Widgets hinzufügen 524
Das Layout korrigieren 525
Die Widgets auf einem Gitter anordnen. 526
Das Gitter-Layout in Code übersetzen 526
Mit dem Controller weitermachen 528
Eine Aktualisierungsfunktion einbauen 528
Bereit für eine neue Art der Programmierung? 531
Die Funktionsweise des Start/Pause-Buttons 534
Eine andere Art von Event 536
Die nötige Technologie haben wir: die after-Methode 538
Zellen direkt eingeben und bearbeiten 541
Den grid_view Event-Handler schreiben 542
Jetzt können wir ein paar Muster hinzufügen. 543
Einen Handler für das Auswahlmenü schreiben 544
Die Ladefunktion für das Muster schreiben 547
Noch weiter! 554
12 Objektorientierte Programmierung 560
Die Dinge anders aufteilen 561
Worum geht es bei der objektorientierten Programmierung überhaupt? 562
Ihre erste Klasse planen 564
Ihre erste Klasse schreiben 565
Wie der Konstruktor funktioniert 565
Die bark-Methode schreiben 568
Die Funktionsweise von Methoden 569
Vererbung nutzen 571
Die ServiceDog-Klasse implementieren 572
Ein genauerer Blick auf abgeleitete Klassen 573
Ein ServiceDog IST EIN Dog 574
IST-Beziehungen im Code überprüfen 575
Verhalten überschreiben und erweitern 579
Noch mehr Fachjargon … 581
Objekt HAT ein anderes Objekt 583
Ein Hundehotel entwickeln 586
Das Hundehotel implementieren 587
Das Hundhotel renovieren 590
Das Hotel um ein paar Aktivitäten erweitern 591
Ich kann alles, was du auch kannst, oder: Polymorphismus 592
Es ist Zeit, den Hunden das Gassigehen beizubringen 593
Die Macht der Vererbung 595
Anhang: Was u?brig bleibt 612
#1 Listen-Comprehensions 613
#2 Datum und Uhrzeit 614
#3 Reguläre Ausdrücke 615
#4 Andere Datentypen: Tupel 616
#5 Andere Datentypen: Sets 617
#6 Serverseitige Programmierung 618
#7 Lazy Evaluation 619
#8 Dekoratoren 620
#9 Higher-Order- und First Class-Funktionen 621
#10 Eine Menge Bibliotheken 622
Index 624
Erscheint lt. Verlag | 23.8.2018 |
---|---|
Reihe/Serie | Von Kopf bis Fuß | Von Kopf bis Fuß |
Übersetzer | Jørgen W. Lang |
Verlagsort | Heidelberg |
Sprache | deutsch |
Themenwelt | Mathematik / Informatik ► Informatik ► Programmiersprachen / -werkzeuge |
Schlagworte | Coden • Einführung • Logik • Objektorientierung • Programmiersprachen • Programmierung • Python • Python 3 • Skriptsprache • Softwareentwicklung |
ISBN-10 | 3-96010-186-4 / 3960101864 |
ISBN-13 | 978-3-96010-186-4 / 9783960101864 |
Haben Sie eine Frage zum Produkt? |
Größe: 43,6 MB
DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasserzeichen und ist damit für Sie personalisiert. Bei einer missbräuchlichen Weitergabe des eBooks an Dritte ist eine Rückverfolgung an die Quelle möglich.
Dateiformat: PDF (Portable Document Format)
Mit einem festen Seitenlayout eignet sich die PDF besonders für Fachbücher mit Spalten, Tabellen und Abbildungen. Eine PDF kann auf fast allen Geräten angezeigt werden, ist aber für kleine Displays (Smartphone, eReader) nur eingeschränkt geeignet.
Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür einen PDF-Viewer - z.B. den Adobe Reader oder Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür einen PDF-Viewer - z.B. die kostenlose Adobe Digital Editions-App.
Zusätzliches Feature: Online Lesen
Dieses eBook können Sie zusätzlich zum Download auch online im Webbrowser lesen.
Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.
aus dem Bereich