Python ist eine der beliebtesten und vielseitigsten Programmiersprachen überhaupt. Für viele Entwickler führt deshalb kein Weg an Python vorbei. Schöpfen Sie mit diesem Buch aus dem reichen Erfahrungsschatz zweier langjähriger Softwareentwickler. Sie lernen zunächst die Syntax der Sprache und vertiefen dann das Erlernte anhand von konkreten Aufgabenstellungen. Für den Blick über den Tellerrand sorgen Kapitel zu Programmierparadigmen, Code-Qualität, Test-Ansätzen und Dokumentation. Jede Menge Tipps und Tricks und ein breites Spektrum an Beispielen lassen Sie zu einem wahren Python-Profi werden.
Johannes Hofmeister lebt in Heidelberg. Am Psychologischen Institut der Universität Heidelberg erforscht er zur Zeit, was Code verständlich macht. Als Softwareentwickler und Berater hat er in großen und kleinen Unternehmen C#, Java und JavaScript eingesetzt, aber am liebsten liest und schreibt er Python-Code. Horst Schneider lebt in Mannheim und arbeitet seit mehr als zehn Jahren als Softwareentwickler. Sein Schwerpunkt ist die Anwendungsentwicklung in verschiedenen Sprachen, von Java über C# bis zu JavaScript und Python. Aktuell arbeitet er als Coach und Berater im Raum Heidelberg und löst vielfältige Probleme - vorzugsweise mit Python.
Über die Autoren 11
Einleitung 23
Törichte Annahmen über den Leser 23
Wie Sie dieses Buch nutzen können 23
Was Sie nicht lesen müssen 24
Wie dieses Buch aufgebaut ist 24
Symbole, die in diesem Buch verwendet werden 25
Konventionen in diesem Buch 26
Teil I: Langweilige Einmallektüre 27
Kapitel 1 Orientierung29
Motivation 29
Was ist Python? 29
Warum sollte ich Python lernen? 29
Was ist an Python so besonders? 30
Seit wann gibt es Python? 30
Warum ist Python weniger verbreitet als andere Sprachen? 31
Welche Sprachfeatures bringt Python mit? 31
Ist Python eine Skript- oder eine Programmiersprache? 32
Ich habe gehört, dass Python langsam ist Stimmt das? 32
Anwendungsgebiete 33
Wer verwendet Python? 33
Kann man mit Python Geld verdienen? 33
Was kann ich mit Python machen? 33
Sollte ich nicht doch lieber eine andere Sprache lernen? 34
Kapitel 2 Im Kriechgang die Installation35
Windows 35
Schritt 1 Herunterladen 36
Schritt 2 Installieren 37
Schritt 3 Läufts? 39
macOS 40
Schritt 1 Herunterladen 40
Schritt 2 Installieren 41
Schritt 3 Läufts? 44
Alternative: Homebrew 44
Linux 45
Einer für alle 46
Kapitel 3 Der Schlange Beine machen Python ausführen49
Der REPL 49
Editor oder IDE? 50
Teil II: Python sprechen lernen 53
Kapitel 4 Hic forum est Schnellkurs55
Vogelperspektive 56
Das kleinste Python-Programm der Welt 59
Zeichenketten und Bildschirmausgabe 60
Rechnen mit Python 63
Variablen 66
Wahrheitswerte und bedingte Ausführung 69
Boolesche Logik in Python 69
Truthy und Falsy 71
Wenn Dann Sonst 72
Listen und Schleifen 74
Funktionen und Module 77
Funktionen definieren und aufrufen 78
Module nutzen 79
Fehlerbehandlung 80
Kapitel 5 Daten strukturieren85
Listen 86
Listen anlegen 86
Was steckt drin? 86
Listen verändern 88
Listen sortieren 89
Absteigend oder aufsteigend sortieren? 90
Tupel 91
Einpacken 91
Entpacken 92
Tupel verändern 94
Tupel sortieren 95
Wann Sie Listen und wann Tupel verwenden sollten 95
Dictionarys 96
Dictionarys anlegen 97
Was steckt drin? 98
Dictionarys verändern 99
Sets 100
Sets anlegen 101
Was steckt drin? 101
Sets verändern 102
Mengenlehre 104
Kapitel 6 Daten transformieren109
Iteration 109
Comprehensions 112
Syntax 112
List Comprehensions 114
Dictionary Comprehensions 115
Set Comprehensions 116
Generator Expressions 117
Slicing 120
Ein einziges Element 121
Mehrere Elemente 122
Schrittweise Auswahl 122
Beispiel: IBAN validieren 123
Iteration ohne Index 125
FAQ Leben ohne Index 127
Nur ein Element 128
Nummerierung 128
Listen zusammenführen 129
Listen zerteilen 129
Dictionarys erzeugen 130
Dictionarys iterieren 131
Verschachtelte Iteration 131
Kapitel 7 Mit der Außenwelt kommunizieren133
Selbstgespräche führen 134
Text ausgeben 134
Text einlesen 135
Textausgabe steuern 136
Längere Texte zusammenbasteln 137
Texte formatieren 137
Textkodierung 140
Kommandozeilenparameter 140
Textdateien einlesen 142
Im Ganzen lesen 142
Zeilenweise lesen 143
Textdateien schreiben 146
Dateimodi: Behalten oder neu machen? 146
Im Ganzen schreiben 147
Zeilenweise schreiben 148
Vollständiges Beispiel 149
Alles fließt 150
Binxc3xa4rdaten lesen 152
Im Ganzen lesen 153
Häppchenweise lesen 154
Binärdaten schreiben 158
Teil III: Mit Python Probleme lösen 161
Kapitel 8 Was Python schon kann163
Built-ins 163
Built-ins für den REPL 165
Umwandlungsfunktionen 166
Mathematische Funktionen 171
Mengen aggregieren 172
Daten transformieren 173
Module und Pakete 175
Module importieren 176
Direktimporte 176
Aus Paketen importieren 177
Namenskonflikte verhindern 177
Import mit Wildcard Alle für einen 178
Die Standardbibliothek 179
Im Lieferumfang enthalten sind 180
os Welches Betriebssystem läuft? 180
random und secrets Zufall 183
imaplib E-Mails versenden 184
urllib und json Web 186
Minisprachen 187
Datum- und Zeitangaben 187
Strings formatieren 192
Kapitel 9 Was Python (noch) nicht kann197
Pip installieren 197
Pakete installieren 198
Installierte Pakete ansehen 199
Spezifische Versionen installieren 199
Pakete entfernen 200
Kapitel 10 Was Sie Python beibringen können201
Eigene Module 201
Eigene Module anlegen 202
Eigene Pakete 202
Eigene Skripte 204
Hintergrund: Wie Module geladen werden 206
Wo sucht Python Module? 206
Module Laden 207
Teil IV: Python als Handwerk 209
Kapitel 11 Funktionale Programmierung211
Anatomie einer Funktion 212
Definition 212
Aufruf 212
Namen und Konzepte 213
Effekte und Nebeneffekte 213
Positionale Argumente 214
Benannte Argumente 215
Regeln für Funktionsaufrufe aufstellen 216
Optionale Argumente 219
Variable Argumente mit *args und **kwargs 222
Argumente entpacken 225
Funktionen haben »Bürgerrechte« 226
Funktionen zusammenstecken 227
Arbeitsteilung 229
Funktionen, die Funktionen erzeugen 232
Dekoratoren 233
Generatoren 235
Kapitel 12 Objektorientierte Programmierung239
Anatomie eines Objekts 240
Objekte 241
Klassen und Konstruktoren 241
Attribute und Methoden 242
Instanzen 246
Operatoren 248
Beziehungen 252
Vererbung Objekte als Familie 253
Komposition Objekte im Team 263
In Objekten denken 270
Was ist eigentlich objektorientierte Programmierung? 271
Wie man gute Objekte designt 273
Kapitel 13 Ausnahmen279
Ausnahmen behandeln 281
Eigene Ausnahmen auslösen 282
Ausnahmen als Signale nutzen 283
Beispiel: Hotels buchen 285
Kapitel 14 Testen 295
Wenn Ihr Programm nicht tut, was es soll 296
Eigenschaften von Python 296
Fehlerklassen (oder: Was alles schief gehen kann) 298
Wo und wie Tests helfen können 300
Python bei der Arbeit zuschauen 301
Debuggen mit print 301
Bedingungen prüfen mit assert 302
Den Programmfluss kontrollierbar machen 303
Unit-Tests schreiben mit dem unittest-Modul 305
Unit-Tests erstellen und ausführen 306
Bestehende Komponenten testen 309
Teil V: Brötchen (oder Lorbeeren) mit Python verdienen 313
Kapitel 15 Code-Qualität315
Werkzeuge 316
Programmstil überprüfen mit Pycodestyle 317
Code reformatieren 319
Programmierfehler erkennen mit Pyflakes 321
Dokumentation überprüfen mit Pydocstyle 323
Sicherheitsrisiken finden mit Bandit 326
Integrierte Code-Audits 328
Modulare Audits mit Flake8 329
Das Schweizer Taschenmesser: Pylint 333
Chancen und Grenzen 335
Listen to your tools 335
Was Werkzeuge nicht leisten können 337
Kapitel 16 Webanwendungen entwickeln 339
Python und das Web 339
Die Qual der Wahl 340
Django 340
Was macht Django? 341
Wie Django HTTP-Anfragen verarbeitet 342
Ein Beispielprojekt 343
Schritt 1 Setup 344
Schritt 2 Die erste Seite 344
Schritt 3 Ein Modell 348
Schritt 4 Die Django-Verwaltung 350
Schritt 5 Eine eigene View 353
Schritt 6 HTML rendern 354
Zusammenfassung 355
Kapitel 17 Daten aufbereiten, visualisieren und auswerten357
Setup 358
Szenario: Minigolf 358
Datensatz 359
Schritt 0 Fragen 361
Schritt 1 Daten einlesen 362
Schritt 2 Data Frames untersuchen 362
Schritt 3 Series-Objekte betrachten 364
Schritt 4 Beschreibende Statistiken ausgeben 365
Schritt 5 Filtern und Bereinigen 367
Schritt 6 Auswerten 369
Schritt 7 Visualisieren 371
Schritt 8 Schließende Statistik 372
Zusammenfassung 373
Teil VI: Der Top-Ten-Teil 375
Kapitel 18 Zehn gute Bibliotheken377
Die Standardbibliothek 377
Requests 377
BeautifulSoup 378
Scrapy 378
Selenium 379
Cryptography 379
Pypdftk 380
Flask 380
OpenCV 380
NLTK 381
Kapitel 19 Zehn Dinge, die wir ausgelassen haben383
Python 2.7 383
Interoperabilität mit C 384
Python Bytecode disassemblieren 384
Debugging 385
Logging 385
GUIs 386
Nebenläufige Ausführung 387
Typ-Annotationen 387
Dataclasses 388
Walross-Operator 389
Stichwortverzeichnis 393