Installieren Sie die genialokal App auf Ihrem Startbildschirm für einen schnellen Zugriff und eine komfortable Nutzung.
Tippen Sie einfach auf Teilen:
Und dann auf "Zum Home-Bildschirm [+]".
Bei genialokal.de kaufen Sie online bei Ihrer lokalen, inhabergeführten Buchhandlung!
Alles zu Python 3 in einem Buch, mit vielen Beispielen und ÜbungenVerständlich, umfassend, praxisnah: Dieses Python-Handbuch ist die erste Wahl für alle, die Python in der Software-Entwicklung einsetzen. Ob Sie gerade anfangen, mit Python zu programmieren oder bei Ihrer Arbeit etwas nachschlagen möchten - in diesem großen Kompendium finden Sie alles, was Sie zu Python wissen müssen. Angefangen mit einem Einstieg in die Sprache und ersten einfachen Beispielen bieten Ihnen Johannes Ernesti und Peter Kaiser in diesem Buch eine Sprachreferenz und die Beschreibung der Standardbibliothek. Die Praxis steht immer im Vordergrund, auch wenn die beiden Autoren professionelle Themen ins Visier nehmen wie GUI-Entwicklung, Webentwicklung, wissenschaftliches Rechnen oder Data Science.Überall im Buch finden Sie Praxisbeispiele, die Ihnen helfen, das Gelernte zu festigen und Ihre Programmierfähigkeiten zu trainieren oder zu vertiefen. Die Programme stehen Ihnen auch als Download zur Verfügung, zusammen mit weiteren Anwendungsbeispielen.Ein Muss für alle, die mit Python Software entwickeln oder Python lernen wollen.- Über 1.000 Seiten Python-Wissen: Einführung, Praxis, Referenz- Sprachgrundlagen, Objektorientierung, Modularisierung- Parallele Programmierung, Debugging, Webentwicklung mit Django, GUIs, Netzwerkkommunikation, Data Science u. v. m. Aus dem Inhalt: - Sprachgrundlagen und objektorientierte Programmierung- Einführung in Python- Modularisierung- Reguläre Ausdrücke- Datums- und Zeitfunktionen- Thread-Programmierung- GUI-Programmierung- Webentwicklung mit Django- Mathematische Module- Schnittstellen zum Betriebssystem- Netzwerkkommunikation- Distribution von Python-Projekten- Programmoptimierung- Wissenschaftliches Rechnen- Data Science
Dr. Johannes Ernesti hat am Karlsruher Institut für Technologie (KIT) in angewandter Mathematik promoviert. Seit Mai 2019 ist er bei DeepL als Research Scientist angestellt
1. Einleitung ... 31 1.1 ... Warum haben wir dieses Buch geschrieben? ... 31 1.2 ... Was leistet dieses Buch? ... 32 1.3 ... Wie ist dieses Buch aufgebaut? ... 32 1.4 ... Wer sollte dieses Buch wie lesen? ... 33 1.5 ... Beispielprogramme ... 34 1.6 ... Vorwort zur achten Auflage ... 34 1.7 ... Danksagung ... 35 2. Die Programmiersprache Python ... 39 2.1 ... Geschichte und Entstehung ... 39 2.2 ... Grundlegende Konzepte ... 40 2.3 ... Einsatzmöglichkeiten und Stärken ... 41 2.4 ... Die Installation von Python ... 43 2.5 ... Drittanbietermodule installieren ... 45 2.6 ... Die Verwendung von Python ... 46 TEIL I. Einstieg in Python ... 49 3. Erste Schritte im interaktiven Modus ... 51 3.1 ... Ganze Zahlen ... 52 3.2 ... Gleitkommazahlen ... 53 3.3 ... Zeichenketten ... 54 3.4 ... Listen ... 55 3.5 ... Dictionarys ... 55 3.6 ... Variablen ... 56 3.7 ... Logische Ausdrücke ... 58 3.8 ... Funktionen und Methoden ... 60 3.9 ... Bildschirmausgaben ... 62 3.10 ... Module ... 63 4. Der Weg zum ersten Programm ... 65 4.1 ... Tippen, kompilieren, testen ... 65 4.2 ... Grundstruktur eines Python-Programms ... 69 4.3 ... Das erste Programm ... 73 4.4 ... Kommentare ... 75 4.5 ... Der Fehlerfall ... 76 5. Kontrollstrukturen ... 79 5.1 ... Fallunterscheidungen ... 79 5.2 ... Schleifen ... 83 5.3 ... Die pass-Anweisung ... 91 5.4 ... Zuweisungsausdrücke ... 91 6. Dateien ... 95 6.1 ... Datenströme ... 95 6.2 ... Daten aus einer Datei auslesen ... 96 6.3 ... Daten in eine Datei schreiben ... 101 6.4 ... Das Dateiobjekt erzeugen ... 102 7. Das Datenmodell ... 109 7.1 ... Die Struktur von Instanzen ... 111 7.2 ... Referenzen löschen ... 116 7.3 ... Mutable vs. immutable Datentypen ... 118 8. Funktionen, Methoden und Attribute ... 123 8.1 ... Parameter von Funktionen und Methoden ... 123 8.2 ... Attribute ... 126 9. Informationsquellen zu Python ... 129 9.1 ... Die Built-in Function help ... 129 9.2 ... Die Onlinedokumentation ... 130 9.3 ... PEPs ... 130 TEIL II. Datentypen ... 133 10. Basisdatentypen: eine Übersicht ... 135 10.1 ... Das Nichts -- NoneType ... 136 10.2 ... Operatoren ... 137 11. Numerische Datentypen ... 143 11.1 ... Arithmetische Operatoren ... 143 11.2 ... Vergleichende Operatoren ... 145 11.3 ... Konvertierung zwischen numerischen Datentypen ... 146 11.4 ... Ganzzahlen -- int ... 147 11.5 ... Gleitkommazahlen -- float ... 154 11.6 ... Boolesche Werte -- bool ... 157 11.7 ... Komplexe Zahlen -- complex ... 163 12. Sequenzielle Datentypen ... 167 12.1 ... Der Unterschied zwischen Text und Binärdaten ... 167 12.2 ... Operationen auf Instanzen sequenzieller Datentypen ... 169 12.3 ... Listen -- list ... 181 12.4 ... Unveränderliche Listen -- tuple ... 195 12.5 ... Strings -- str, bytes, bytearray ... 199 13. Zuordnungen und Mengen ... 239 13.1 ... Dictionary -- dict ... 239 13.2 ... Mengen -- set und frozenset ... 253 14. Collections ... 267 14.1 ... Verkettete Dictionarys ... 267 14.2 ... Zählen von Häufigkeiten ... 268 14.3 ... Dictionarys mit Standardwerten ... 271 14.4 ... Doppelt verkettete Listen ... 272 14.5 ... Benannte Tupel ... 274 15. Datum und Zeit ... 277 15.1 ... Elementare Zeitfunktionen -- time ... 277 15.2 ... Objektorientierte Datumsverwaltung -- datetime ... 286 15.3 ... Zeitzonen -- zoneinfo ... 296 16. Enumerationen und Flags ... 303 16.1 ... Aufzählungstypen -- Enum ... 303 16.2 ... Aufzählungstypen für Bitmuster -- Flag ... 305 16.3 ... Ganzzahlige Aufzählungstypen -- IntEnum ... 306 TEIL III. Fortgeschrittene Programmiertechniken ... 309 17. Funktionen ... 311 17.1 ... Definieren einer Funktion ... 313 17.2 ... Rückgabewerte ... 314 17.3 ... Funktionsobjekte ... 316 17.4 ... Optionale Parameter ... 317 17.5 ... Schlüsselwortparameter ... 318 17.6 ... Beliebige Anzahl von Parametern ... 319 17.7 ... Reine Schlüsselwortparameter ... 321 17.8 ... Reine Positionsparameter ... 323 17.9 ... Unpacking beim Funktionsaufruf ... 324 17.10 ... Seiteneffekte ... 326 17.11 ... Namensräume ... 329 17.12 ... Anonyme Funktionen ... 336 17.13 ... Rekursion ... 337 17.14 ... Eingebaute Funktionen ... 338 18. Module und Pakete ... 365 18.1 ... Einbinden globaler Module ... 366 18.2 ... Lokale Module ... 368 18.3 ... Pakete ... 371 18.4 ... Das Paket importlib ... 376 18.5 ... Geplante Sprachelemente ... 377 19. Objektorientierte Programmierung ... 379 19.1 ... Beispiel: Ein nicht objektorientiertes Konto ... 379 19.2 ... Klassen ... 385 19.3 ... Vererbung ... 390 19.4 ... Mehrfachvererbung ... 403 19.5 ... Property-Attribute ... 404 19.6 ... Statische Methoden ... 407 19.7 ... Klassenmethoden ... 409 19.8 ... Klassenattribute ... 411 19.9 ... Built-in Functions für die objektorientierte Programmierung ... 411 19.10 ... Erben von eingebauten Datentypen ... 415 19.11 ... Magic Methods und Magic Attributes ... 417 19.12 ... Datenklassen ... 438 20. Ausnahmebehandlung ... 443 20.1 ... Exceptions ... 443 20.2 ... Zusicherungen -- assert ... 459 20.3 ... Warnungen ... 460 20.4 ... Exception Groups ... 461 21. Generatoren und Iteratoren ... 467 21.1 ... Generatoren ... 467 21.2 ... Iteratoren ... 474 21.3 ... Spezielle Generatoren -- itertools ... 485 21.4 ... Generatoren als Konsumenten ... 495 22. Kontext-Manager ... 501 22.1 ... Die with-Anweisung ... 501 22.2 ... Hilfsfunktionen für with-Kontexte -- contextlib ... 504 23. Dekoratoren ... 509 23.1 ... Funktionsdekoratoren ... 509 23.2 ... Klassendekoratoren ... 515 23.3 ... Das Modul functools ... 516 24. Annotationen und statische Typprüfung ... 523 24.1 ... Annotationen ... 525 24.2 ... Type Hints -- das Modul typing ... 532 24.3 ... Statische Typprüfung in Python -- mypy ... 539 25. Structural Pattern Matching ... 541 25.1 ... Die match-Anweisung ... 541 25.2 ... Arten von Mustern in der case-Anweisung ... 542 TEIL IV. Die Standardbibliothek ... 559 26. Mathematik ... 561 26.1 ... Mathematische Funktionen -- math, cmath ... 561 26.2 ... Zufallszahlengenerator -- random ... 568 26.3 ... Statistische Berechnungen -- statistics ... 572 26.4 ... Intuitive Dezimalzahlen -- decimal ... 574 26.5 ... Hash-Funktionen -- hashlib ... 580 27. Bildschirmausgaben und Logging ... 589 27.1 ... Übersichtliche Ausgabe komplexer Objekte -- pprint ... 589 27.2 ... Logdateien -- logging ... 591 28. Reguläre Ausdrücke ... 599 28.1 ... Die Syntax regulärer Ausdrücke ... 599 28.2 ... Verwendung des Moduls re ... 611 28.3 ... Ein einfaches Beispielprogramm -- Searching ... 618 28.4 ... Ein komplexeres Beispielprogramm -- Matching ... 620 28.5 ... Kommentare in regulären Ausdrücken ... 623 28.6 ... Katastrophales Backtracking ... 624 29. Schnittstellen zum Betriebssystem und zur Laufzeitumgebung ... 627 29.1 ... Funktionen des Betriebssystems -- os ... 627 29.2 ... Starten von Subprozessen -- subprocess ... 630 29.3 ... Zugriff auf die Laufzeitumgebung -- sys ... 633 29.4 ... Kommandozeilenparameter -- argparse ... 638 30. Das Dateisystem ... 647 30.1 ... Grundlegendes zu Dateisystemen und Pfaden ... 647 30.2 ... Die moderne Lösung -- pathlib ... 649 30.3 ... Zugriff auf das Dateisystem mit os ... 656 30.4 ... Dateipfade -- os.path ... 664 30.5 ... Zugriff auf das Dateisystem -- shutil ... 668 30.6 ... Temporäre Dateien -- tempfile ... 674 31. Parallele Programmierung ... 677 31.1 ... Prozesse, Multitasking und Threads ... 677 31.2 ... Pythons Schnittstellen zur Parallelisierung ... 682 31.3 ... Die abstrakte Schnittstelle -- concurrent.futures ... 683 31.4 ... Die flexible Schnittstelle -- threading und multiprocessing ... 694 31.5 ... Die kooperative Schnittstelle -- asyncio ... 706 31.6 ... Fazit: Welche Schnittstelle ist die richtige? ... 725 32. Datenspeicherung ... 727 32.1 ... Das Datenaustauschformat JSON -- json ... 727 32.2 ... Serialisierung von Instanzen -- pickle ... 729 32.3 ... Das Tabellenformat CSV -- csv ... 733 32.4 ... Komprimierte Dateien und Archive ... 739 32.5 ... Datenbanken ... 741 32.6 ... XML ... 761 33. Netzwerkkommunikation ... 777 33.1 ... Die Socket API ... 778 33.2 ... XML-RPC ... 797 34. Zugriff auf Ressourcen im Internet ... 807 34.1 ... Protokolle ... 807 34.2 ... Lösungen ... 808 34.3 ... Der einfache Weg -- requests ... 809 34.4 ... URLs -- urllib ... 812 34.5 ... FTP -- ftplib ... 820 35. E-Mail ... 829 35.1 ... SMTP -- smtplib ... 829 35.2 ... POP3 -- poplib ... 832 35.3 ... IMAP4 -- imaplib ... 837 35.4 ... Erstellen komplexer E-Mails -- email ... 843 36. Debugging und Qualitätssicherung ... 847 36.1 ... Der Debugger ... 847 36.2 ... Automatisiertes Testen ... 850 36.3 ... Analyse des Laufzeitverhaltens ... 858 37. Dokumentation ... 869 37.1 ... Docstrings ... 869 37.2 ... Automatisches Erstellen einer Dokumentation -- pydoc ... 871 TEIL V. Weiterführende Themen ... 873 38. Distribution von Python-Projekten ... 875 38.1 ... Eine Geschichte der Distributionen in Python ... 875 38.2 ... Erstellen von Distributionen -- setuptools ... 877 38.3 ... Erstellen von EXE-Dateien -- cx_Freeze ... 886 38.4 ... Paketmanager ... 888 38.5 ... Lokalisierung von Programmen -- gettext ... 893 39. Virtuelle Umgebungen ... 899 39.1 ... Das Arbeiten mit virtuellen Umgebungen -- venv ... 900 39.2 ... Virtuelle Umgebungen in Anaconda ... 901 40. Alternative Interpreter und Compiler ... 903 40.1 ... Just-in-Time-Kompilierung -- PyPy ... 903 40.2 ... Numba ... 905 40.3 ... Anbindung an C und C++ -- Cython ... 907 40.4 ... Die interaktive Python-Shell -- IPython ... 914 41. Grafische Benutzeroberflächen ... 923 41.1 ... Toolkits ... 923 41.2 ... Einführung in tkinter ... 925 41.3 ... Einführung in PySide6 ... 972 42. Python als serverseitige Programmiersprache im WWW -- ein Einstieg in Django ... 1021 42.1 ... Konzepte und Besonderheiten von Django ... 1022 42.2 ... Installation von Django ... 1023 42.3 ... Ein neues Django-Projekt erstellen ... 1024 42.4 ... Eine Applikation erstellen ... 1028 43. Wissenschaftliches Rechnen und Data Science ... 1069 43.1 ... Installation ... 1070 43.2 ... Das Modellprogramm ... 1071 43.3 ... Überblick über die Module numpy und scipy ... 1080 43.4 ... Eine Einführung in die Datenanalyse mit pandas ... 1090 44. Insiderwissen ... 1107 44.1 ... URLs im Standardbrowser öffnen -- webbrowser ... 1107 44.2 ... Interpretieren von Binärdaten -- struct ... 1107 44.3 ... Versteckte Passworteingabe -- getpass ... 1110 44.4 ... Kommandozeilen-Interpreter -- cmd ... 1110 44.5 ... Dateiinterface für Strings -- io.StringIO ... 1113 44.6 ... Kopieren von Instanzen -- copy ... 1114 44.7 ... Bildverarbeitung -- Pillow ... 1118 45. Eine Geschichte der Python-Versionen ... 1129 45.1 ... Die Versionshistorie ... 1129 45.2 ... Der Sprung nach Python 3 ... 1132 Anhang ... 1139 A.1 ... Reservierte Wörter ... 1139 A.2 ... Operatorrangfolge ... 1139 A.3 ... Eingebaute Funktionen ... 1141 A.4 ... Eingebaute Exceptions ... 1145 A.5 ... Python-IDEs ... 1150 Index ... 1153