Python 3

Das umfassende Handbuch

  • Rheinwerk
  • Hardcover
  • 1171 Seiten
  • 8. Auflage
  • 24,0 cm x 16,8 cm
  • Erscheinungsdatum: 05.02.2026
  • Artikelnummer 978-3-367-10406-2

Hardcover

lieferbar innerhalb von 3-4 Werktagen
Auf den Merkzettel

Alles zu Python 3 in einem Buch, mit vielen Beispielen und Übungen Verstä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


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

Johannes Ernesti
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

Peter Kaiser
Dr. Peter Kaiser hat am Karlsruher Institut für Technologie (KIT) in humanoider Robotik promoviert. Seit Mai 2019 arbeitet er als Research Scientist bei DeepL.

Bitte beachten Sie die Kontaktangaben des Herstellers bei Fragen zur Produktsicherheit.
 
Kontakt für Produktsicherheit
Rheinwerk Verlag GmbH
Rheinwerkallee 4
53229 Bonn
E-Mail: service@rheinwerk-verlag.de