Vorwort

Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com

Die Programmiersprache Python bringt viele scheinbare Widersprüche unter einen Hut: Sie ist elegant und doch pragmatisch, einfach und doch mächtig, sie ist sehr hochsprachig und kommt dir nicht in die Quere, wenn du mit Bits und Bytes hantieren musst, und sie ist sowohl für Programmieranfänger als auch für Experten gut geeignet.

Dieses Buch richtet sich sowohl an Programmierer, die bereits einige Erfahrungen mit Python gesammelt haben, als auch an erfahrene Programmierer, die zum ersten Mal mit Python arbeiten und aus anderen Sprachen kommen. Es bietet einen schnellen Überblick über Python selbst, die am häufigsten verwendeten Teile der umfangreichen Standardbibliothek und einige der beliebtesten und nützlichsten Module und Pakete von Drittanbietern. Das Python-Ökosystem ist so reichhaltig, umfangreich und komplex geworden, dass ein einzelner Band nicht mehr den Anspruch erheben kann, enzyklopädisch zu sein. Dennoch deckt das Buch ein breites Spektrum an Anwendungsbereichen ab, darunter Web- und Netzwerkprogrammierung, XML-Verarbeitung, Datenbankinteraktionen und numerische Hochgeschwindigkeitsberechnungen. Außerdem werden die plattformübergreifenden Fähigkeiten von Python und die Grundlagen der Erweiterung von Python und der Einbettung in andere Anwendungen behandelt.

Wie man dieses Buch benutzt

Du kannst diesen Band von Anfang an lesen, aber er soll auch ein nützliches Nachschlagewerk für den arbeitenden Programmierer sein. Du kannst den Index nutzen, um interessante Punkte zu finden, oder bestimmte Kapitel lesen, um ihre speziellen Themen zu behandeln. Wie auch immer du es verwendest, wir wünschen dir viel Spaß bei der Lektüre dieses Buches, das das Ergebnis der Arbeit eines ganzen Jahres für das Team ist.

Das Buch besteht aus fünf Teilen, wie folgt.

Teil I, Erste Schritte mit Python

Kapitel 1, "Einführung in Python"
Behandelt die allgemeinen Merkmale der Sprache Python, ihre Implementierungen, wo du Hilfe und Informationen bekommst, wie du dich an der Python-Community beteiligen kannst und wie du Python auf deinem Computer erhältst und installierst oder in deinem Browser ausführst.
Kapitel 2, "Der Python-Interpreter"
Behandelt den Python-Interpreter, seine Kommandozeilenoptionen und wie man ihn zum Ausführen von Python-Programmen und in interaktiven Sitzungen verwendet. Das Kapitel erwähnt Texteditoren zum Bearbeiten von Python-Programmen und Hilfsprogramme zum Überprüfen deiner Python-Quellen sowie einige vollwertige integrierte Entwicklungsumgebungen, darunter IDLE, das im Lieferumfang von Standard-Python enthalten ist. Das Kapitel behandelt auch das Ausführen von Python-Programmen über die Kommandozeile.

Teil II, Die Kernsprache Python und ihre Erweiterungen

Kapitel 3, "Die Sprache Python"
Behandelt die Python-Syntax, die eingebauten Datentypen, Ausdrücke, Anweisungen, den Kontrollfluss und wie man Funktionen schreibt und aufruft.
Kapitel 4, "Objektorientiertes Python"
Behandelt die objektorientierte Programmierung in Python.
Kapitel 5, "Typ-Anmerkungen"
Hier erfährst du, wie du deinem Python-Code Typinformationen hinzufügst, damit moderne Code-Editoren Type Hinting und Autovervollständigung anbieten und statische Typüberprüfungen von Type Checkern und Linters unterstützen.
Kapitel 6, "Ausnahmen"
Hier erfährst du, wie du Ausnahmen für Fehler und besondere Situationen verwendest, wie du protokollierst und wie du Code schreibst, um Ausnahmen automatisch zu bereinigen, wenn sie auftreten.
Kapitel 7, "Module und Pakete"
Hier erfährst du, wie du mit Python Code in Module und Pakete einteilen kannst, wie du Module definierst und importierst und wie du Python-Pakete von Drittanbietern installierst. Dieses Kapitel behandelt auch die Arbeit mit virtuellen Umgebungen, um Projektabhängigkeiten zu isolieren.
Kapitel 8, "Core Built-ins und Standardbibliotheksmodule"
Behandelt eingebaute Datentypen und Funktionen sowie einige der grundlegendsten Module der Python-Standardbibliothek (grob gesagt die Menge an Modulen, die Funktionen bereitstellen, die in einigen anderen Sprachen in die Sprache selbst eingebaut sind).
Kapitel 9, "Saiten und Dinge"
Behandelt die Möglichkeiten von Python zur Verarbeitung von Strings, einschließlich Unicode-Strings, Bytestrings und String-Literalen.
Kapitel 10, "Reguläre Ausdrücke"
Behandelt die Unterstützung von Python für reguläre Ausdrücke.

Teil III, Python-Bibliothek und Erweiterungsmodule

Kapitel 11, "Datei- und Textoperationen"
Behandelt den Umgang mit Dateien und Text mit vielen Modulen aus der Standardbibliothek von Python und plattformspezifischen Erweiterungen für Rich Text I/O. Dieses Kapitel behandelt auch Fragen zur Internationalisierung und Lokalisierung.
Kapitel 12, "Persistenz und Datenbanken"
Behandelt die Serialisierungs- und Persistenzmechanismen von Python und seine Schnittstellen zu DBM-Datenbanken und relationalen (SQL-basierten) Datenbanken, insbesondere das praktische SQLite, das in der Python-Standardbibliothek enthalten ist.
Kapitel 13, "Zeitliche Abläufe"
Behandelt den Umgang mit Zeiten und Daten in Python, mit der Standardbibliothek und Erweiterungen von Drittanbietern.
Kapitel 14, "Ausführung anpassen"
Behandelt Möglichkeiten zur erweiterten Ausführungskontrolle in Python, einschließlich der Ausführung von dynamisch erzeugtem Code und der Kontrolle der Speicherbereinigung. Dieses Kapitel behandelt auch einige interne Python-Typen und das spezielle Problem der Registrierung von "Aufräumfunktionen", die bei Programmende ausgeführt werden.
Kapitel 15, "Gleichzeitigkeit: Threads und Prozesse"
Behandelt die Funktionen von Python für die gleichzeitige Ausführung, sowohl über mehrere Threads innerhalb eines Prozesses als auch über mehrere Prozesse, die auf einem einzigen Rechner laufen.1 In diesem Kapitel geht es auch darum, wie man auf die Prozessumgebung zugreift und wie man über Memory-Mapping-Mechanismen auf Dateien zugreift.
Kapitel 16, "Numerische Verarbeitung"
Behandelt die Funktionen von Python für numerische Berechnungen, sowohl in den Modulen der Standardbibliothek als auch in den Erweiterungspaketen von Drittanbietern; insbesondere, wie man Dezimalzahlen oder Brüche anstelle der standardmäßigen binären Fließkommazahlen verwendet. In diesem Kapitel erfährst du außerdem, wie du Pseudozufallszahlen und echte Zufallszahlen erhältst und verwendest und wie du ganze Arrays (und Matrizen) von Zahlen schnell verarbeiten kannst.
Kapitel 17, "Testen, Debuggen und Optimieren"
Behandelt Python-Werkzeuge und -Ansätze, mit denen du sicherstellen kannst, dass deine Programme korrekt sind (d.h. dass sie das tun, was sie tun sollen), Fehler in deinen Programmen finden und beheben und die Leistung deiner Programme überprüfen und verbessern kannst. In diesem Kapitel geht es auch um das Konzept der Warnungen und das Python-Bibliotheksmodul, das sich mit ihnen befasst.

Teil IV, Netzwerk- und Webprogrammierung

Kapitel 18, "Grundlagen der Netzwerktechnik"
Behandelt die Grundlagen der Vernetzung mit Python.
Kapitel 19, "Client-seitige Netzwerkprotokollmodule"
Behandelt die Module der Python-Standardbibliothek zum Schreiben von Netzwerk-Client-Programmen, insbesondere zum Umgang mit verschiedenen Netzwerkprotokollen auf der Client-Seite, zum Senden und Empfangen von E-Mails und zum Umgang mit URLs.
Kapitel 20, "Serving HTTP"
Hier erfährst du, wie du HTTP für Webanwendungen in Python bereitstellst, indem du beliebte leichtgewichtige Python-Frameworks von Drittanbietern verwendest und die WSGI-Standardschnittstelle von Python zu Webservern nutzt.
Kapitel 21, "E-Mail, MIME und andere Netzwerkverschlüsselungen"
Hier erfährst du, wie du E-Mail-Nachrichten und andere netzwerkstrukturierte und verschlüsselte Dokumente in Python verarbeitest.
Kapitel 22, "Strukturierter Text: HTML"
Behandelt beliebte Python-Erweiterungsmodule von Drittanbietern zum Verarbeiten, Ändern und Erzeugen von HTML-Dokumenten.
Kapitel 23, "Strukturierter Text: XML"
Behandelt Python-Bibliotheksmodule und beliebte Erweiterungen zum Verarbeiten, Ändern und Erzeugen von XML-Dokumenten.

Teil V, Erweitern, Verteilen, Versions-Upgrade und Migration

Die Kapitel 24 und 25 sind in der Printausgabe dieses Buches in zusammengefasster Form enthalten. Den vollständigen Inhalt dieser Kapitel findest du im unterstützenden Online-Repository, das unter "Wie du uns kontaktierst" beschrieben wird .

Kapitel 24, "Verpackungsprogramme und Erweiterungen"
Enthält Werkzeuge und Module zum Verpacken und Weitergeben von Python-Modulen und -Anwendungen.
Kapitel 25, "Erweitern und Einbetten von klassischem Python"
Hier erfährst du, wie du Python-Erweiterungsmodule mit der C-API von Python, Cython und anderen Tools programmierst.
Kapitel 26, "Migration von v3.7 auf v3.n"
Behandelt Themen und bewährte Methoden für die Planung und Durchführung von Versions-Upgrades für Python-Benutzer - von Einzelpersonen über Bibliotheksbetreuer bis hin zu unternehmensweitem Einsatz und Supportpersonal.
Anhang, "Neue Funktionen und Änderungen in Python 3.7 bis 3.11"
Hier findest du eine detaillierte Liste der Funktionen und Änderungen in der Python-Syntax und der Standardbibliothek, aufgeschlüsselt nach Versionen.

In diesem Buch verwendete Konventionen

Die folgenden Konventionen werden in diesem Buch verwendet.

Referenz Konventionen

In den Funktions-/Methodenreferenzen wird, wenn möglich, jeder optionale Parameter mit einem Standardwert in der Python-Syntax name=wert angegeben. Eingebaute Funktionen müssen keine benannten Parameter akzeptieren, so dass Parameternamen nicht unbedingt von Bedeutung sind. Einige optionale Parameter lassen sich am besten durch ihr Vorhandensein oder Nichtvorhandensein und nicht durch Standardwerte erklären. In solchen Fällen geben wir an, dass ein Parameter optional ist, indem wir ihn in Klammern ([]) einschließen. Wenn mehr als ein Argument optional ist, können die Klammern verschachtelt werden.

Versionskonventionen

Dieses Buch behandelt Änderungen und Funktionen in den Python-Versionen 3.7 bis 3.11.

Python 3.7 dient als Basisversion für alle Tabellen und Codebeispiele, sofern nicht anders angegeben.2 Diese Notationen weisen auf Änderungen oder Funktionen hin, die über die verschiedenen Versionen hinweg hinzugefügt oder entfernt wurden:

  • 3.x+ markiert eine Funktion, die in Version 3.x eingeführt wurde und in früheren Versionen nicht verfügbar war.

  • -3.x markiert eine Funktion, die in Version 3.x entfernt wurde und nur in früheren Versionen verfügbar war.

Typografische Konventionen

Bitte beachte, dass unsere Codeschnipsel und Beispiele aus Darstellungsgründen manchmal von PEP 8 abweichen können. Wir raten dir davon ab, dir in deinem Code solche Freiheiten zu nehmen. Verwende stattdessen ein Dienstprogramm wie black, um einen kanonischen Layout-Stil zu übernehmen.

In diesem Buch werden die folgenden typografischen Konventionen verwendet:

Kursiv
Wird für Datei- und Verzeichnisnamen, Programmnamen, URLs und zur Einführung neuer Begriffe verwendet.
Konstante Breite
Wird für Befehlszeilenausgaben und Codebeispiele sowie für Codeelemente verwendet, die im Text vorkommen, einschließlich Methoden, Funktionen, Klassen und Module.
Konstante Breite kursiv
Wird verwendet, um Text anzuzeigen, der in Codebeispielen und Befehlen durch vom Benutzer eingegebene Werte ersetzt wird.
Konstante Breite fett

Wird für Befehle verwendet, die in eine System-Befehlszeile eingegeben werden, und um die Codeausgabe in Python-Interpreter-Sitzungsbeispielen anzuzeigen. Wird auch für Python-Schlüsselwörter verwendet.

Tipp

Dieses Element steht für einen Tipp oder eine Anregung.

Hinweis

Dieses Element steht für einen allgemeinen Hinweis.

Warnung

Dieses Element weist auf eine Warnung oder einen Warnhinweis hin.

Code-Beispiele verwenden

Dieses Buch soll dir helfen, deine Arbeit zu erledigen. Wenn in diesem Buch Beispielcode angeboten wird, darfst du ihn in deinen Programmen und deiner Dokumentation verwenden. Du musst uns nicht um Erlaubnis fragen, es sei denn, du reproduzierst einen großen Teil des Codes. Wenn du zum Beispiel ein Programm schreibst, das mehrere Teile des Codes aus diesem Buch verwendet, brauchst du keine Erlaubnis. Der Verkauf oder die Verbreitung von Beispielen aus O'Reilly-Büchern erfordert jedoch eine Genehmigung. Die Beantwortung einer Frage mit einem Zitat aus diesem Buch und einem Beispielcode erfordert keine Genehmigung. Wenn du einen großen Teil des Beispielcodes aus diesem Buch in die Dokumentation deines Produkts aufnimmst, ist eine Genehmigung erforderlich.

Wir schätzen die Namensnennung, verlangen sie aber nicht. Eine Quellenangabe umfasst normalerweise den Titel, den Autor, den Verlag und die ISBN. Zum Beispiel: "Python in a Nutshell, 4. Aufl., von Alex Martelli, Anna Martelli Ravenscroft, Steve Holden und Paul McGuire. Copyright 2023, 978-1-098-11355-1."

Wenn du der Meinung bist, dass die Verwendung von Code-Beispielen nicht unter die Fair-Use-Regelung oder die oben genannte Erlaubnis fällt, kannst du uns gerne unter permissions@oreilly.com kontaktieren .

O'Reilly Online Learning

Hinweis

Seit mehr als 40 Jahren bietet O'Reilly Media Schulungen, Wissen und Einblicke in Technologie und Wirtschaft, um Unternehmen zum Erfolg zu verhelfen.

Unser einzigartiges Netzwerk von Experten und Innovatoren teilt sein Wissen und seine Erfahrung durch Bücher, Artikel und unsere Online-Lernplattform. Die Online-Lernplattform von O'Reilly bietet dir On-Demand-Zugang zu Live-Trainingskursen, ausführlichen Lernpfaden, interaktiven Programmierumgebungen und einer umfangreichen Text- und Videosammlung von O'Reilly und über 200 anderen Verlagen. Weitere Informationen erhältst du unter https://oreilly.com.

Wie du uns kontaktierst

Bitte richte Kommentare und Fragen zu diesem Buch an den Verlag:

  • O'Reilly Media, Inc.
  • 1005 Gravenstein Highway Nord
  • Sebastopol, CA 95472
  • 800-998-9938 (in den Vereinigten Staaten oder Kanada)
  • 707-829-0515 (international oder lokal)
  • 707-829-0104 (Fax)

Das Buch hat ein eigenes GitHub-Repository, in dem wir Errata, Beispiele und alle zusätzlichen Informationen auflisten. Das Repository enthält auch den vollständigen Inhalt der Kapitel 24 und 25, für die im gedruckten Band nicht genug Platz war. Du findest es unter https://github.com/pynutshell/pynut4.

Wir haben die Informationen in diesem Buch nach bestem Wissen und Gewissen getestet und überprüft, aber es kann sein, dass sich Funktionen geändert haben (oder dass wir sogar Fehler gemacht haben!). Bitte informiere den Herausgeber über alle Fehler, die du findest, und über deine Vorschläge für zukünftige Ausgaben.

O'Reilly hat eine Webseite für dieses Buch, auf der sie Errata, Beispiele und zusätzliche Informationen auflisten. Du kannst diese Seite unter https://oreil.ly/python-nutshell-4e aufrufen .

Wenn du Kommentare oder technische Fragen zu diesem Buch stellen möchtest, sende eine E-Mail an pynut4@gmail.com.

Neuigkeiten und Informationen über unsere Bücher und Kurse findest du unter https://oreilly.com.

Du findest uns auf LinkedIn: https://linkedin.com/company/oreilly-media.

Folge uns auf Twitter: https://twitter.com/oreillymedia.

Sieh uns auf YouTube: https://www.youtube.com/oreillymedia.

Danksagungen

Vielen Dank an die O'Reilly-Redakteure und -Mitarbeiter Amanda Quinn, Brian Guerin, Zan McQuade und Kristen Brown. Ein besonderer Dank geht an unsere Lektorin Angela Rufino, die uns dabei geholfen hat, dieses Buch rechtzeitig fertigzustellen! Ein weiterer Dank geht an unsere hervorragende Lektorin Rachel Head, die uns geholfen hat, gelehrter zu erscheinen, als wir sind, und an unseren Produktionsredakteur Christopher Faucher, der dafür gesorgt hat, dass das Buch sowohl in gedruckter als auch in elektronischer Form gut aussieht.

Danke an unsere fleißigen technischen Prüfer David Mertz, Mark Summerfield und Pankaj Gaijar, die jede Erklärung und jedes Beispiel im Entwurf des Buches durchgelesen haben. Ohne sie wäre dieses Buch nicht so genau gewesen.3 Alle Fehler, die bleiben, sind ausschließlich unsere eigenen.

Vielen Dank auch an Luciano Ramalho, das gesamte PyPy-Team, Sebastián Ramírez, Fabio Pliger, Miguel Grinberg und das Team der Python Packaging Authority für ihre Hilfe bei ausgewählten Teilen des Buches und an Google für seine nützlichen Workspace Online-Kollaborationstools, ohne die unsere intensive Kommunikation (und die Koordination zwischen Autoren auf verschiedenen Kontinenten!) weit weniger einfach und effizient gewesen wäre.

Zu guter Letzt schulden die Autoren und alle Leser dieses Buches den Kernentwicklern der Sprache Python selbst einen großen Dank, ohne deren heldenhaften Einsatz dieses Buch nicht nötig gewesen wäre.

1 Das separate Kapitel über asynchrone Programmierung in der dritten Ausgabe wurde in dieser Ausgabe gestrichen und durch eine gründlichere Behandlung dieses wachsenden Themas in den Referenzen in Kapitel 15 ersetzt.

2 Um zum Beispiel die weit verbreiteten Änderungen in Python 3.9 und 3.10 bei den Typ-Annotationen zu berücksichtigen, wird in Kapitel 5 größtenteils Python 3.10 als Basisversion für Funktionen und Beispiele verwendet.

3 Es würde auch nicht so viele Fußnoten haben!

Get Python in a Nutshell, 4. Auflage now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.