Freeman | Programmieren lernen von Kopf bis Fuß | E-Book | sack.de
E-Book

E-Book, Deutsch, 638 Seiten

Reihe: Von Kopf bis Fuß

Freeman Programmieren lernen von Kopf bis Fuß

Ihr Einstieg in die Programmierung mit Python

E-Book, Deutsch, 638 Seiten

Reihe: Von Kopf bis Fuß

ISBN: 978-3-96010-186-4
Verlag: O'Reilly
Format: PDF
Kopierschutz: 1 - PDF Watermark



Was lernen Sie in diesem Buch?
Es ist kein Geheimnis, dass die Welt um Sie herum immer computerbasierter, vernetzter, konfigurier- und programmierbarer wird. Sie können passiv daran teilhaben – oder Sie können lernen zu programmieren. In diesem Buch erfahren Sie, wie Sie Code schreiben, mit dem Sie Ihren Computer, Ihr Mobilgerät oder alles, was sich programmieren lässt, dazu bringen, Dinge für Sie zu tun. Mit der Programmiersprache Python erarbeiten Sie sich Schritt für Schritt die Grundkonzepte der Programmierung sowie viele grundlegende Themen der Informatik wie Speicherung, Datenstrukturen, Abstraktion, Rekursion oder Modularität.
Warum sieht dieses Buch so anders aus?
In dieses Buch sind die neuesten Erkenntnisse der Kognitionsforschung und der Lerntheorie eingeflossen, um Ihnen das Lernen so einfach wie möglich zu machen. Statt einschläfernder Bleiwüsten verwendet dieses Buch eine Vielzahl von Abbildungen und Textstilen, die Ihr Gehirn auf Trab halten und Ihnen das Wissen direkt ins Hirn spielen – und zwar so, dass es sitzt.
Freeman Programmieren lernen von Kopf bis Fuß jetzt bestellen!

Weitere Infos & Material


1;Der Autor;5
2;Inhaltsverzeichnis;6
3;Einführung;22
3.1;Für wen ist dieses Buch?;23
3.2;Wir wissen, was Sie gerade denken.;24
3.3;Lies mich!;29
3.4;Sie müssen Python installieren;31
3.5;Ein paar Worte zur Organisation Ihres Codes;33
3.6;Danksagungen*;34
3.7;Das Gutachterteam;35
3.8;Über den Übersetzer dieses Buchs;36
4;1 Rechnerisch denken;38
4.1;Immer der Reihe nach;39
4.2;Wie Programmieren funktioniert;43
4.3;Sprechen wir überhaupt die gleiche Sprache?;44
4.4;Die Welt der Programmiersprachen;45
4.5;Code mit Python schreiben und ausführen;50
4.6;Eine kurze Geschichte von Python;52
4.7;Python auf Herz und Nieren prüfen;55
4.8;Ihre Arbeit speichern;57
4.9;Herzlichen Glückwunsch zu Ihrem ersten Python-Programm!;58
4.10;Phrasendrescher;62
4.11;Den Code in die Maschine bekommen;63
5;2 Einfache Werte, Variablen und Typen;70
5.1;Einen Rechner für Hundejahre programmieren;71
5.2;Pseudocode in richtigen Code umwandeln;73
5.3;Schritt 1: Eingaben einsammeln;74
5.4;Wie die input-Funktion funktioniert;75
5.5;Variablen verwenden, um Werte zu erinnern und zu speichern;75
5.6;Benutzereingabe einer Variablen zuweisen;76
5.7;Schritt 2: Weitere Eingaben einsammeln;76
5.8;Zeit, unseren Code auszuführen;77
5.9;Etwas Code eingeben;80
5.10;Ein genauer Blick auf Variablen;81
5.11;Etwas mehr Ausdruck;82
5.12;Variablen sind VARIABEL;83
5.13;Besser leben durch Operatoren-Präzedenz;84
5.14;Rechnen mit Operatoren-Präzedenz;85
5.15;Finger von der Tastatur!;88
5.16;Step 3: Das Alter des Hundes berechnen;89
5.17;Houston, wir haben ein Problem!;90
5.18;Fehler sind menschlich gehören zum Programmieren dazu;91
5.19;Etwas mehr Debugging …;93
5.20;Welcher Python-(Daten-)Typ sind Sie?;95
5.21;Den Code reparieren;96
5.22;Houston, wir sind abgehoben.;97
5.23;Schritt 4: Benutzerfreundliche Ausgaben;98
6;3 Boolesche Werte, Entscheidungen und Schleifen;110
6.1;Wollen Sie ein Spiel spielen?;111
6.2;Zuerst ein allgemeines Konzept;113
6.3;Die Wahl des Computers;114
6.4;Wie Zufallszahlen genutzt werden;115
6.5;Vorstellung des booleschen Datentyps;118
6.6;Entscheidungen treffen;119
6.7;Entscheidungen und noch mehr Entscheidungen;120
6.8;Zurück zu Stein, Schere, Papier;121
6.9;Die Wahl des Benutzers ermitteln;122
6.10;Ein Blick auf die Wahl des Benutzers;125
6.11;Den Code zum Finden eines Unentschiedens einbauen;126
6.12;Wer hat gewonnen?;127
6.13;Implementieren wir die Spiellogik;129
6.14;Mehr über boolesche Operatoren;130
6.15;Ist das dokumentiert?;135
6.16;Den Code mit Kommentaren versehen;136
6.17;Wir müssen das Spiel endlich fertigstellen!;137
6.18;Woher wissen wir, ob eine Benutzereingabe ungültig ist?;138
6.19;Den Ausdruck überprüfen und aufräumen;139
6.20;Den Benutzer immer wieder zur Eingabe auffordern;141
6.21;Dinge mehr als einmal tun;142
6.22;Wie die while-Schleife funktioniert;143
6.23;while benutzen, um den Benutzer zur Eingabe aufzufordern, bis eine gültige Auswahl getroffen wurde;147
6.24;Glückwunsch! Sie haben Ihr erstes Spiel programmiert!;149
7;4 Listen und Iterationen;162
7.1;Können Sie Bubbles-R-Us helfen?;163
7.2;Mehrere Werte in Python darstellen;164
7.3;Wie Listen funktionieren;165
7.4;Wie lang ist die Liste eigentlich?;168
7.5;Auf das letzte Listenelement zugreifen;169
7.6;Python macht das sogar noch einfacher;169
7.7;Pythons negative Indizes benutzen;170
7.8;In der Zwischenzeit bei Bubbles-R-Us …;172
7.9;Wie man über eine Liste iteriert;175
7.10;Den Ausgabefehler beseitigen;176
7.11;Den Ausgabefehler wirklich beseitigen;177
7.12;Die for-Schleife – der bevorzugte Weg zum Iterieren über eine Liste;179
7.13;Die for-Schleife mit einer Zahlenfolge benutzen;182
7.14;Mehr tun mit Zahlenfolgen;183
7.15;Die Einzelteile zusammensetzen;185
7.16;Eine komplett neue Liste erstellen;193
7.17;Mit Listen geht noch mehr;194
7.18;Probefahrt für den fertigen Bericht;198
7.19;Und die Gewinner sind …;198
7.20;Probefahrt für die kosteneffektivste Seifenblasenmischung;202
8;5 Funktionen und Abstraktion;216
8.1;Was stimmt denn mit dem Code nicht?;218
8.2;Einen Codeblock in eine FUNKTION umwandeln;220
8.3;Wir haben eine Funktion erstellt, aber wie können wir sie benutzen?;221
8.4;Aber wie funktioniert das wirklich?;221
8.5;Funktionen können auch Dinge ZURÜCKGEBEN;229
8.6;Funktionen mit Rückgabewerten aufrufen;230
8.7;Ein bisschen Refaktorierung zwischendurch;232
8.8;Den Code ausführen;233
8.9;Den Avatar-Code abstrahieren;234
8.10;Den Körper der get attribute-Funktion schreiben;235
8.11;get_attribute aufrufen;236
8.12;Wir sollten noch etwas mehr über Variablen sprechen …;238
8.13;Den Geltungsbereich von Variablen verstehen;239
8.14;Wenn Variablen an Funktionen übergeben werden …;240
8.15;Die drink_me-Funktion aufrufen;241
8.16;Was ist mit der Verwendung globaler Variablen in Funktionen?;244
8.17;Mehr zu Parametern: Standardwerte und Schlüsselwörter;247
8.18;Wie Standardwerte funktionieren;247
8.19;Geben Sie erforderliche Parameter immer zuerst an!;248
8.20;Argumente mit Schlüsselwörtern verwenden;249
8.21;Wie man diese Optionen einordnen sollte;249
9;4, Teil 2, Sortierung und verschachtelte Iteration;262
9.1;Bubble Sort verstehen;265
9.2;Wir beginnen mit Durchgang 1:;265
9.3;Etwas Bubble Sort-Pseudocode;268
9.4;Bubble Sort in Python implementieren;271
9.5;Die Nummern der Seifenblasen­mischungen berechnen;273
10;6 Text, Strings und Heuristiken;282
10.1;Willkommen zu den Datenwissenschaften;283
10.2;Wie berechnet man einen Lesbarkeitsindex?;284
10.3;Der große Plan;285
10.4;Ein bisschen Pseudocode;286
10.5;Wir brauchen etwas Text zur Analyse;287
10.6;Die Funktion erstellen;289
10.7;Als Erstes brauchen wir die Anzahl der Wörter in unserem Text;290
10.8;Die Anzahl der Sätze berechnen;294
10.9;Die count_sentences-Funktion schreiben;295
10.10;Die Anzahl der Silben zählen – oder: Heuristiken lieben lernen;301
10.11;Die Heuristik vorbereiten;304
10.12;Die Heuristik schreiben;305
10.13;Wie man Vokale zählt;306
10.14;Aufeinanderfolgende Vokale ignorieren;306
10.15;Den Code zum Ignorieren aufeinanderfolgender Vokale schreiben;307
10.16;Die Buchstaben e und y sowie Interpunktions­zeichen am Satzende entfernen;309
10.17;Slicing (und Substrings) benutzen;311
10.18;Den heuristischen Code fertigstellen;313
10.19;Die Formel für den Lesbarkeitsindex implementieren;315
10.20;Und noch mehr;320
11;7 Module, Methoden, Klassen und Objekte;328
11.1;Ein schneller Rückblick auf Module;331
11.2;Die globale Variable _name_;333
11.3;analyze.py aktualisieren;334
11.4;analyze.py als Modul benutzen;336
11.5;analyze.py mit Docstrings versehen;338
11.6;Andere Python-Module erforschen;342
11.7;Moment mal. Haben Sie gerade »Schildkröten« gesagt?!;343
11.8;Erschaffen Sie Ihre eigene Schildkröte!;345
11.9;Tierversuche mit Schildkröten;346
11.10;Eine zweite Schildkröte hinzufügen;348
11.11;Was sind diese Schildkröten überhaupt?;351
11.12;Was sind Objekte?;352
11.13;Okay, und was ist eine Klasse?;353
11.14;Eine Klasse ist kein Objekt. Sie wird verwendet, um Objekte zu erzeugen.;353
11.15;Objekte und Klassen verwenden;355
11.16;Worum geht es bei den Methoden und Attributen?;356
11.17;Klassen und Objekte überall;357
11.18;Bereitmachen zum Schildkrötenrennen;359
11.19;Das Spiel planen;360
11.20;Fangen wir mit dem Programmieren an;361
11.21;Das Spiel vorbereiten;361
11.22;Den Setup-Code schreiben;362
11.23;Nicht so schnell!;363
11.24;Das Rennen beginnen;365
12;8 Rekursion und Dictionaries;378
12.1;Eine andere Art, Dinge zu berechnen;379
12.2;Kommen wir jetzt zu etwas völlig anderem …;380
12.3;Schreiben wir etwas Code für beide Fälle;381
12.4;Etwas mehr Übung;384
12.5;Rekursion zum Finden von Palindromen benutzen;385
12.6;Einen rekursiven Palindrom-Detektor schreiben;386
12.7;Das Unsoziale Netzwerk;397
12.8;Das Dictionary;399
12.9;Sehen wir, wie ein Dictionary erstellt wird.;399
12.10;Schlüssel und Werte müssen keine Strings sein.;400
12.11;Natürlich können Sie die Schlüssel auch wieder entfernen.;400
12.12;Vielleicht wollen Sie aber zuerst überprüfen, ob er überhaupt existiert.;400
12.13;Kann man über Dictionaries auch iterieren?;401
12.14;Dictionaries für das Unsoziale Netzwerk einsetzen;403
12.15;Aber wie fügen wir weitere Attribute hinzu?;405
12.16;Erinnern Sie sich an das Killer-Feature unseres Unsozialen Netzwerks?;407
12.17;Den unsozialsten Benutzer finden;408
12.18;Können wir uns die Ergebnisse der Funktionsaufrufe nicht einfach merken?;413
12.19;Ein Dictionary zum Speichern der Fibonacci-Ergebnisse;413
12.20;Etwas gegen teure Berechnungen: Memoisation;414
12.21;Ein genauer Blick auf die koch-Funktion;417
12.22;Das Koch-Fraktal eingehend erforschen;419
13;9 Dateien speichern und auslesen;430
13.1;Bereit für Crazy Libs?;431
13.2;Wie Crazy Libs funktionieren soll;433
13.3;Schritt 1: Text der Geschichte aus einer Datei lesen;436
13.4;Dateipfade richtig benutzen;437
13.5;Relative Pfade;437
13.6;Absolute Pfade;438
13.7;Oh, und vergessen Sie nicht, wieder aufzuräumen, wenn Sie fertig sind.;439
13.8;Dateien im Python-Code lesen;440
13.9;Jetzt hör schon auf!;443
13.10;Verwendung der readline-Methode am Dateiobjekt;444
13.11;Woher wissen wir, wann die letzte Zeile gelesen wurde?;446
13.12;Eine Crazy Lib-Schablone einlesen;447
13.13;Den Schablonentext verarbeiten;448
13.14;Den Bug mit einer neuen Stringmethode beseitigen;450
13.15;Den Bug tatsächlich beheben;451
13.16;Der eine oder andere Code hat echte Probleme;452
13.17;Mit Ausnahmen umgehen;454
13.18;Ausdrücklich mit Ausnahmen umgehen;455
13.19;Crazy Libs aktualisieren, um mit Ausnahmen umzugehen;457
13.20;Unser letzter Schritt: Das Crazy Lib speichern;458
13.21;Den Rest des Code aktualisieren;458
14;10 Web-APIs benutzen;472
14.1;Erweitern Sie Ihre Reichweite mit Web-APIs;473
14.2;Die Funktionsweise von Web-APIs;474
14.3;Alle Web-APIs besitzen eine Webadresse;475
14.4;Zeit für ein schnelles Upgrade;478
14.5;Das Upgrade durchführen;479
14.6;Jetzt brauchen wir nur noch eine gute Web-API ...;480
14.7;Ein genauerer Blick auf die API;481
14.8;Web-APIs verwenden JSON für die Rückgabe der Daten;482
14.9;Sehen wir uns das requests-Modul noch einmal an;484
14.10;Die Einzelteile zusammensetzen: einen Request an Open Notify verschicken;486
14.11;JSON in Python verarbeiten;487
14.12;Das JSON-Modul zum Auslesen der ISS-Daten benutzen;488
14.13;Wir brauchen etwas mehr Grafik;489
14.14;Das screen-Objekt;490
14.15;Wir benutzen eine Schildkröte, um die ISS darzustellen;492
14.16;Schildkröten können auch wie Weltraumstationen aussehen;493
14.17;Vergessen Sie die ISS. Wo sind WIR?;494
14.18;Den ISS-Code fertigstellen;495
15;11 Widgets, Events und emergentes Verhalten;504
15.1;Willkommen in der WUNDERVOLLEN WELT des KÜNSTLICHEN LEBENS;505
15.2;Eine genauerer Blick auf das Spiel des Lebens;506
15.3;Was wir bauen werden;509
15.4;Haben wir das richtige Design?;510
15.5;Das Datenmodell (Model) entwickeln;514
15.6;Das Raster im Code abbilden;514
15.7;Eine Generation des Spiels des Lebens berechnen;515
15.8;Das Schicksal aller Zellen berechnen;515
15.9;Den Model-Code fertigstellen;519
15.10;Den View erstellen;522
15.11;Das erste Widget erstellen;523
15.12;Die fehlenden Widgets hinzufügen;524
15.13;Das Layout korrigieren;525
15.14;Die Widgets auf einem Gitter anordnen.;526
15.15;Das Gitter-Layout in Code übersetzen;526
15.16;Mit dem Controller weitermachen;528
15.17;Eine Aktualisierungsfunktion einbauen;528
15.18;Bereit für eine neue Art der Programmierung?;531
15.19;Die Funktionsweise des Start/Pause-Buttons;534
15.20;Eine andere Art von Event;536
15.21;Die nötige Technologie haben wir: die after-Methode;538
15.22;Zellen direkt eingeben und bearbeiten;541
15.23;Den grid_view Event-Handler schreiben;542
15.24;Jetzt können wir ein paar Muster hinzufügen.;543
15.25;Einen Handler für das Auswahlmenü schreiben;544
15.26;Die Ladefunktion für das Muster schreiben;547
15.27;Noch weiter!;554
16;12 Objektorientierte Programmierung;560
16.1;Die Dinge anders aufteilen;561
16.2;Worum geht es bei der objektorientierten Programmierung überhaupt?;562
16.3;Ihre erste Klasse planen;564
16.4;Ihre erste Klasse schreiben;565
16.5;Wie der Konstruktor funktioniert;565
16.6;Die bark-Methode schreiben;568
16.7;Die Funktionsweise von Methoden;569
16.8;Vererbung nutzen;571
16.9;Die ServiceDog-Klasse implementieren;572
16.10;Ein genauerer Blick auf abgeleitete Klassen;573
16.11;Ein ServiceDog IST EIN Dog;574
16.12;IST-Beziehungen im Code überprüfen;575
16.13;Verhalten überschreiben und erweitern;579
16.14;Noch mehr Fachjargon …;581
16.15;Objekt HAT ein anderes Objekt;583
16.16;Ein Hundehotel entwickeln;586
16.17;Das Hundehotel implementieren;587
16.18;Das Hundhotel renovieren;590
16.19;Das Hotel um ein paar Aktivitäten erweitern;591
16.20;Ich kann alles, was du auch kannst, oder: Polymorphismus;592
16.21;Es ist Zeit, den Hunden das Gassigehen beizubringen;593
16.22;Die Macht der Vererbung;595
17;Anhang: Was u?brig bleibt;612
17.1;#1 Listen-Comprehensions;613
17.2;#2 Datum und Uhrzeit;614
17.3;#3 Reguläre Ausdrücke;615
17.4;#4 Andere Datentypen: Tupel;616
17.5;#5 Andere Datentypen: Sets;617
17.6;#6 Serverseitige Programmierung;618
17.7;#7 Lazy Evaluation;619
17.8;#8 Dekoratoren;620
17.9;#9 Higher-Order- und First Class-Funktionen;621
17.10;#10 Eine Menge Bibliotheken;622
18;Index;624


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.


Ihre Fragen, Wünsche oder Anmerkungen
Vorname*
Nachname*
Ihre E-Mail-Adresse*
Kundennr.
Ihre Nachricht*
Lediglich mit * gekennzeichnete Felder sind Pflichtfelder.
Wenn Sie die im Kontaktformular eingegebenen Daten durch Klick auf den nachfolgenden Button übersenden, erklären Sie sich damit einverstanden, dass wir Ihr Angaben für die Beantwortung Ihrer Anfrage verwenden. Selbstverständlich werden Ihre Daten vertraulich behandelt und nicht an Dritte weitergegeben. Sie können der Verwendung Ihrer Daten jederzeit widersprechen. Das Datenhandling bei Sack Fachmedien erklären wir Ihnen in unserer Datenschutzerklärung.