Das Python-Tutorial
*******************

Tipp:

  Dieses Tutorial richtet sich an *Programmierer*, die neu bei der
  Sprache Python sind, **nicht** an *Anfänger*, die neu beim
  Programmieren sind.

Python ist eine leicht zu erlernende, mächtige Programmiersprache. Sie
bietet effiziente objektorientierte Datenstrukturen und einen
einfachen, aber effektiven Ansatz zur objektorientierten
Programmierung. Pythons elegante Syntax und dynamische Typisierung
machen es zusammen mit seiner Eigenschaft als Interpretationssprache
zu einer idealen Sprache für Skripte und schnelle
Anwendungsentwicklung in vielen Bereichen auf den meisten Plattformen.

Der Python-Interpreter und die umfangreiche Standardbibliothek sind
für alle wichtigen Plattformen frei im Quell- oder Binärformat auf der
Python-Website, https://www.python.org/, erhältlich und dürfen frei
weitergegeben werden. Dieselbe Seite enthält außerdem Distributionen
und Verweise auf viele freie Python-Module, -Programme und -Werkzeuge
von Drittanbietern sowie zusätzliche Dokumentation.

Der Python-Interpreter lässt sich leicht um neue Funktionen und
Datentypen erweitern, die in C oder C++ (oder anderen aus C
aufrufbaren Sprachen) implementiert sind. Python eignet sich auch als
Erweiterungssprache für anpassbare Anwendungen.

Dieses Tutorial führt den Leser informell in die grundlegenden
Konzepte und Funktionen der Sprache Python und ihres Systems ein.
Bitte beachte, dass ein grundlegendes Verständnis der Programmierung
im Allgemeinen vorausgesetzt wird. Es ist hilfreich, für praktische
Erfahrungen einen Python-Interpreter zur Hand zu haben; alle Beispiele
sind jedoch eigenständig, sodass das Tutorial auch offline gelesen
werden kann.

Eine Beschreibung der Standardobjekte und -module findest du unter
Python built-ins reference und The Python standard library. Die
Python-Sprachreferenz bietet eine formellere Definition der Sprache.
Um Erweiterungen in C oder C++ zu schreiben, lies Extending and
Embedding the Python Interpreter und Python/C API Reference Manual. Es
gibt außerdem mehrere Bücher, die sich eingehend mit Python befassen.

Dieses Tutorial erhebt keinen Anspruch darauf, vollständig zu sein und
jedes einzelne oder auch nur jedes häufig genutzte Feature abzudecken.
Stattdessen führt es in viele der bemerkenswertesten Features von
Python ein und vermittelt dir einen guten Eindruck vom Stil und der
Philosophie der Sprache. Nach dem Lesen wirst du in der Lage sein,
Python-Module und -Programme zu lesen und zu schreiben, und du wirst
bereit sein, mehr über die verschiedenen im The Python standard
library beschriebenen Python-Bibliotheksmodule zu lernen.

Auch das Glossar ist einen Blick wert.

* 1. Appetitanreger

* 2. Verwendung des Python-Interpreters

  * 2.1. Aufrufen des Interpreters

    * 2.1.1. Argumentübergabe

    * 2.1.2. Interaktiver Modus

  * 2.2. Der Interpreter und seine Umgebung

    * 2.2.1. Quelltext-Codierung

* 3. Eine informelle Einführung in Python

  * 3.1. Python als Taschenrechner verwenden

    * 3.1.1. Zahlen

    * 3.1.2. Text

    * 3.1.3. Listen

  * 3.2. Erste Schritte in Richtung Programmierung

* 4. Mehr Werkzeuge zur Ablaufsteuerung

  * 4.1. "if"-Anweisungen

  * 4.2. "for"-Anweisungen

  * 4.3. Die Funktion "range()"

  * 4.4. "break"- und "continue"-Anweisungen

  * 4.5. "else"-Klauseln bei Schleifen

  * 4.6. "pass"-Anweisungen

  * 4.7. "match"-Anweisungen

  * 4.8. Funktionen definieren

  * 4.9. Mehr zum Definieren von Funktionen

    * 4.9.1. Standardwerte für Argumente

    * 4.9.2. Schlüsselwortargumente

    * 4.9.3. Spezielle Parameter

      * 4.9.3.1. Positions- oder Schlüsselwortargumente

      * 4.9.3.2. Reine Positionsargumente

      * 4.9.3.3. eine Schlüsselwortargumente

      * 4.9.3.4. Funktionsbeispiele

      * 4.9.3.5. Rückblick

    * 4.9.4. Beliebige Argumentlisten

    * 4.9.5. Entpacken von Argumentlisten

    * 4.9.6. Lambda-Ausdrücke

    * 4.9.7. Dokumentations-Zeichenketten

    * 4.9.8. Funktions-Annotationen

  * 4.10. Intermezzo: Programmierstil

* 5. Datenstrukturen

  * 5.1. Mehr zum Thema Listen

    * 5.1.1. Listen als Stapel verwenden

    * 5.1.2. Listen als Warteschlangen verwenden

    * 5.1.3. Listen-Abstraktion

    * 5.1.4. Verschachtelte Listen-Abstraktion

  * 5.2. Die Erklärung der "del" “

  * 5.3. Tupel und Sequenzen

  * 5.4. Sets

  * 5.5. Wörterbücher

  * 5.6. Schleifentechniken

  * 5.7. Mehr zu den Bedingungen

  * 5.8. Vergleich von Sequenzen und anderen Typen

* 6. Module

  * 6.1. Mehr zum Thema Module

    * 6.1.1. Module als Skripte ausführen

    * 6.1.2. Der Suchpfad für Module

    * 6.1.3. "Kompilierte" Python-Dateien

  * 6.2. Standardmodule

  * 6.3. Die Funktion "dir()"

  * 6.4. Pakete

    * 6.4.1. Importieren von * aus einem Paket

    * 6.4.2. Verweise innerhalb eines Pakets

* 7. Eingabe und Ausgabe

  * 7.1. Erweiterte Formatierungsmöglichkeiten für die Ausgabe

    * 7.1.1. Formatierte Zeichenfolgenliterale

    * 7.1.2. Die String-Methode format()

    * 7.1.3. Manuelle Formatierung von Zeichenfolgen

    * 7.1.4. Alte Zeichenfolgenformatierung

  * 7.2. Dateien lesen und schreiben

    * 7.2.1. Methoden von Datei-Objekten

    * 7.2.2. Strukturierte Daten speichern mit "json"

* 8. Fehler und Ausnahmen

  * 8.1. Syntax Fehler

  * 8.2. Ausnahmen

  * 8.3. Behandlung von Ausnahmen

  * 8.4. Auslösen von Ausnahmen

  * 8.5. Verkettung von Ausnahmen

  * 8.6. Benutzerdefinierte Ausnahmen

  * 8.7. Definition von Bereinigungsaktionen

  * 8.8. Vordefinierte Bereinigungsaktionen

  * 8.9. Auslösen und Behandeln mehrerer unzusammenhängender Ausnahmen

  * 8.10. Anreicherung von Ausnahmen mit Notizen

* 9. Klassen

  * 9.1. Ein Wort zu Namen und Objekten

  * 9.2. Python-Gültigkeitsbereiche und Namensräume

    * 9.2.1. Beispiel für Gültigkeitsbereiche und Namensräume

  * 9.3. Ein erster Blick auf Klassen

    * 9.3.1. Syntax von Klassendefinitionen

    * 9.3.2. Klassenobjekte

    * 9.3.3. Instanzobjekte

    * 9.3.4. Methodenobjekte

    * 9.3.5. Klassen- und Instanzvariablen

  * 9.4. Ergänzende Hinweise

  * 9.5. Vererbung

    * 9.5.1. Mehrfachvererbung

  * 9.6. Private Variablen

  * 9.7. Dies und Das

  * 9.8. Iteratoren

  * 9.9. Generatoren

  * 9.10. Generator-Ausdrücke

* 10. Ein kurzer Überblick über die Standardbibliothek

  * 10.1. Betriebssystemschnittstelle

  * 10.2. Datei-Platzhalter

  * 10.3. Befehlszeilenargumente

  * 10.4. Umleitung der Fehlerausgabe und Beendigung des Programms

  * 10.5. Zeichenfolgenabgleich

  * 10.6. Mathematik

  * 10.7. Internetzugang

  * 10.8. Termine und Uhrzeiten

  * 10.9. Datenkomprimierung

  * 10.10. Leistungsmessung

  * 10.11. Qualitätskontrolle

  * 10.12. Batterien im Lieferumfang enthalten

* 11. Ein kurzer Überblick über die Standardbibliothek – Teil II

  * 11.1. Ausgabeformatierung

  * 11.2. Vorlagen

  * 11.3. Arbeiten mit Layouts für binäre Datensätze

  * 11.4. Multithreading

  * 11.5. Protokollierung

  * 11.6. Schwache Referenzen

  * 11.7. Werkzeuge zur Arbeit mit Listen

  * 11.8. Dezimale Gleitkommaarithmetik

* 12. Virtuelle Umgebungen und Pakete

  * 12.1. Einführung

  * 12.2. Erstellung virtueller Umgebungen

  * 12.3. Pakete mit pip verwalten

* 13. Was nun?

* 14. Interaktive Eingabebearbeitung und Historienersetzung

  * 14.1. Tab-Vervollständigung und Historienbearbeitung

  * 14.2. Alternativen zum interaktiven Interpreter

* 15. Gleitkommaarithmetik: Probleme und Einschränkungen

  * 15.1. Darstellungsfehler

* 16. Anhang

  * 16.1. Interaktiver Modus

    * 16.1.1. Fehlerbehandlung

    * 16.1.2. Ausführbare Python-Skripte

    * 16.1.3. Die interaktive Startdatei

    * 16.1.4. Die Anpassungsmodule
