O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Einfüehrung in Python

Book Description

Google tut es, YouTube tut es, Zope und die NASA tun es - sie verwenden Python. Und das natürlich nicht ohne Grund! Python ist portabel, Open Source, modern, objektorientiert, mit schlankem Sprachkern bei gleichzeitig mächtigem Bibliotheksumfang. Für Anfä

Table of Contents

  1. Einfüehrung in Python
    1. Vorwort
      1. Über diese zweite Auflage
      2. Voraussetzungen
      3. Der Umfang dieses Buches
      4. Stil und Struktur dieses Buches
        1. Der Sprachkern
        2. Die äußere Hülle
        3. Anhänge
      5. Aktualisierungen des Buches
      6. Typographische Konventionen
      7. Über die Programme im Buch
      8. Benutzen der Code-Beispiele
      9. Danksagung
        1. Mark fügt noch hinzu:
        2. David fügt noch hinzu:
    2. I. Einleitung
      1. 1. Fragen und Antworten zu Python
        1. Warum Python?
          1. Software-Qualität
          2. Entwickler-Produktivität
        2. Ist Python eine Skriptsprache?
        3. Wo ist der Haken?
        4. Wer benutzt heute Python?
        5. Was kann ich mit Python machen?
          1. System-Hilfsmittel
          2. GUIs
          3. Internet-Programmierung
          4. Komponenten-Integration
          5. Datenbank-Programmierung
          6. Schnelle Prototyp-Erstellung
          7. Numerisches Programmieren
          8. Und mehr: Spiele, Bilder, KI, XML
        6. Welche technischen Stärken hat Python?
          1. Python ist objektorientiert
          2. Python ist kostenlos
          3. Python ist portabel
          4. Python ist mächtig
          5. Python ist kombinierbar
          6. Python ist einfach anzuwenden
          7. Python ist einfach zu erlernen
        7. Python verglichen mit anderen Sprachen
      2. 2. Programmausführung durch Python
        1. Einführung in den Python-Interpreter
        2. Programmausführung
          1. Die Programmierer-Sicht
          2. Die Python-Sicht
            1. Bytecode-Kompilierung
            2. Die Python Virtual Machine (PVM)
            3. Auswirkungen auf die Performance
            4. Auswirkungen auf die Entwicklung
        3. Varianten des Ausführungsmodells
          1. Alternative Python-Implementierungen
            1. CPython
            2. Jython
            3. IronPython
          2. Psyco
          3. Stackless Python
          4. PyPy
          5. Eingefrorene Binärdateien
      3. 3. Wie man Python-Programme ausführt
        1. Interaktives Codieren
          1. Die interaktive Eingabeaufforderung nutzen
        2. System-Kommandozeilen und Dateien
          1. Kommandozeilen und Dateien nutzen
          2. Ausführbare Skripten unter Unix (#!)
        3. Windows-Datei-Icons anklicken
          1. Icons unter Windows anklicken
          2. Der Trick mit raw_input
          3. Weitere Beschränkungen von Icon-Klicks
        4. Module importieren und neu laden
          1. Die große Modul-Geschichte: Attribute
          2. Verwendungshinweise zum Import und Neuladen
        5. Die Entwicklungsumgebung IDLE
          1. IDLE-Grundlagen
          2. IDLE im Einsatz
        6. Weitere IDEs
        7. Eingebettete Aufrufe
        8. Eingefrorene ausführbare Binärdateien
        9. Startmöglichkeiten im Texteditor
        10. Weitere Startoptionen
        11. Die Qual der Wahl
        12. Übungen zu Teil I
    3. II. Typen und Operationen
      1. 4. Zahlen
        1. Python-Programmstruktur
        2. Warum eingebaute Typen benutzen?
        3. Zahlen
          1. Zahlen-Literale
          2. Eingebaute Werkzeuge und Erweiterungen
        4. Python-Ausdrucksoperatoren
          1. Gemischte Operatoren: Operator-Vorrang
          2. Klammern gruppieren Unterausdrücke
          3. Gemischte Typen: Konvertierung nach oben
          4. Vorschau: Operator-Überladung
        5. Zahlen in Aktion
          1. Basis-Operationen und -Variablen
          2. Numerische Darstellung
          3. Division: klassische, restlose und echte
          4. Bitweise Operationen
          5. Lange Ganzzahlen
          6. Komplexe Zahlen
          7. Hexadezimale und oktale Notation
          8. Weitere numerische Werkzeuge
        6. Intermezzo: Dynamische Typisierung
          1. Wie Zuweisungen funktionieren
          2. Verweise und veränderliche Objekte
          3. Verweise und Speicherbereinigung
      2. 5. Strings
        1. String-Literale
          1. Einfache und doppelte Anführungszeichen sind gleichwertig
          2. Escape-Sequenzen codieren spezielle Bytes
          3. Rohe Strings unterdrücken Escape-Codes
          4. Dreifache Anführungszeichen codieren mehrzeilige Block-Strings
          5. Unicode-Strings codieren größere Zeichensätze
        2. Strings in Aktion
          1. Grundlegende Operationen
          2. Indizierung und Teilbereiche
            1. Indizieren (S[i]) holt Komponenten an bestimmten Positionen
            2. Teilbereiche (S[i:j]) extrahieren zusammenhängende Abschnitte
          3. Werkzeuge zur String-Konvertierung
          4. Strings verändern
        3. String-Formatierung
          1. Anspruchsvollere String-Formatierung
        4. String-Methoden
          1. Beispiele für String-Methoden: Strings ändern
          2. Beispiele für String-Methoden: Text parsen
        5. Generische Typenkategorien
          1. Typen teilen Operationsgruppen nach Kategorien auf
          2. Veränderliche Typen können an Ort und Stelle verändert werden
      3. 6. Listen und Dictionaries
        1. Listen
        2. Listen in Aktion
          1. Grundlegende Listenoperationen
          2. Indizierung, Teilbereiche und Matrizen
          3. Verändern von Listen an Ort und Stelle
            1. Zuweisung an Indizes und Teilbereiche
            2. Listen-Methodenaufrufe
        3. Dictionaries
        4. Dictionaries in Aktion
          1. Grundlegende Dictionary-Operationen
          2. Dictionaries an Ort und Stelle verändern
          3. Weitere Dictionary-Methoden
          4. Eine Sprachtabelle
          5. Verwendungshinweise für Dictionaries
            1. Flexible Listen mit Dictionaries simulieren
            2. Dictionaries für spärlich besetzte Datenstrukturen
            3. Dictionaries als Datensätze (»Records«)
      4. 7. Tupel, Dateien und alles andere
        1. Tupel
          1. Warum Listen und Tupel?
        2. Mengen
        3. Dateien
          1. Dateien in Aktion
        4. Typenkategorien, die Zweite
        5. Allgemeinheit
        6. Verweise und Kopien
        7. Boolesche Wahrheitswerte
        8. Vergleiche und Gleichheit
        9. Typenhierarchien in Python
        10. Weitere Typen in Python
        11. Fallen bei eingebauten Typen
          1. Zuweisungen erzeugen Verweise, keine Kopien
          2. Wiederholung geht eine Ebene tief
            1. Lösungen
          3. Zyklische Datenstrukturen
          4. Unveränderliche Typen können nicht an Ort und Stelle verändert werden
        12. Übungen zu Teil II
    4. III. Anweisungen und Syntax
      1. 8. Zuweisungen, Ausdrücke und Print
        1. Zuweisungen
          1. Regeln für Variablennamen
            1. Namenskonventionen
            2. Namen haben keinen Typ, sondern Objekte haben einen
          2. Erweiterte Zuweisungsanweisungen
        2. Ausdrücke
        3. Print-Anweisungen
          1. Das »Hallo Welt«-Programm in Python
          2. Umleitung des Ausgabestroms
            1. Die Erweiterung print>>Datei
      2. 9. if-Tests
        1. if-Anweisungen
          1. Allgemeines Format
          2. Beispiele
            1. Mehrfach-Verzweigungen
        2. Python-Syntaxregeln
          1. Block-Begrenzungszeichen
          2. Anweisungsbegrenzungszeichen
          3. Einige Spezialfälle
        3. Wahrheitstests
          1. Bedingte Ausdrücke
      3. 10. while und for-Schleifen
        1. while-Schleifen
          1. Allgemeines Format
          2. Beispiele
        2. break, continue, pass und das Schleifen-else
          1. Allgemeines Schleifenformat
          2. Beispiele
          3. Mehr über das Schleifen-else
        3. for-Schleifen
          1. Allgemeines Format
          2. Beispiele
        4. Schleifenvarianten
          1. Zählschleifen: range
          2. Umgekehrte Traversierung
          3. Nicht-erschöpfende Traversierungen: range
          4. Listenänderungen: range
          5. Parallele Traversierungen: zip und map
          6. Dictionary-Konstruktion mit zip
      4. 11. Python-Code dokumentieren
        1. Das Python-Dokumentationsintermezzo
          1. Dokumentationsquellen
          2. # Kommentare
          3. Die dir-Funktion
          4. Docstrings: _ _doc_ _
            1. Benutzerdefinierte Docstrings
            2. Docstring-Standards
            3. Eingebaute Docstrings
          5. PyDoc: Die help-Funktion
          6. PyDoc: HTML-Ausgabe
          7. Standard-Handbücher
          8. Webressourcen
          9. Veröffentlichte Bücher
        2. Häufige Fallen beim Codieren
        3. Übungaufgaben zu Teil III
    5. IV. Funktionen
      1. 12. Funktionen
        1. Weshalb Funktionen?
        2. Codierung von Funktionen
          1. def-Anweisungen
          2. def wird zur Laufzeit ausgeführt
        3. Ein erstes Beispiel: Definitionen und Aufrufe
          1. Definition
          2. Aufrufe
          3. Polymorphie in Python
        4. Ein zweites Beispiel: Schnittmenge von Sequenzen
          1. Definition
          2. Aufrufe
          3. Polymorphie, die Zweite
          4. Lokale Variablen
      2. 13. Gültigkeitsbereiche und Argumente
        1. Gültigkeitsregeln
          1. Grundlagen zu Gültigkeitsbereichen in Python
          2. Namensauflösung: Die LEGB-Regel
          3. Beispiel
          4. Der eingebaute Gültigkeitsbereich
        2. Die global-Anweisung
        3. Gültigkeitsbereiche und verschachtelte Funktionen
          1. Details zu verschachtelten Gültigkeitsbereichen
          2. Beispiele zu verschachtelten Gültigkeitsbereichen
        4. Argumentübergabe
          1. Argumente und gemeinsame Verweise
          2. Änderung veränderlicher Argumente vermeiden
          3. Ausgabe-Parameter simulieren
        5. Spezielle Arten des Argumentabgleichs
          1. Beispiele für Schlüsselwörter und Vorgabewerte
          2. Beispiele mit beliebigen Argumenten
          3. Schlüsselwörter und Vorgabewerte kombinieren
          4. Beispiel: Eine Minimum-Funktion
            1. Mehrere Möglichkeiten
            2. Bonuspunkte
            3. Die Pointe
          5. Beispiel: Allgemeine Mengen-Funktionen
          6. Details beim Argumentabgleich
      3. 14. Funktionen für Fortgeschrittene
        1. Anonyme Funktionen: lambda
          1. lambda-Ausdrücke
          2. Wozu lambdas?
          3. Verschachtelte lambdas und Gültigkeitsbereiche
        2. Funktionen auf Argumente anwenden
          1. Die eingebaute Funktion apply
            1. Übergabe von Schlüsselwortargumenten
          2. Apply-ähnliche Aufrufsyntax
        3. Funktionen auf Sequenzen anwenden
        4. Werkzeuge bei der funktionalen Programmierung
        5. Partielle Anwendung von Funktionen
        6. List Comprehensions
          1. Grundlagen
          2. Tests und verschachtelte Schleifen hinzufügen
          3. List Comprehensions verstehen
        7. Dekoratoren
        8. Generatoren und Iteratoren
          1. Generator-Beispiel
          2. Generatoren mit Eingaben
          3. Generator-Ausdrücke
          4. Iteratoren und eingebaute Typen
        9. Konzepte beim Entwurf von Funktionen
          1. Funktionen sind Objekte: Indirekte Aufrufe
        10. Fallen bei Funktionen
          1. Lokale Namen werden statisch bestimmt
          2. Vorgabewerte und veränderliche Objekte
          3. Funktionen ohne Rückgabewerte
        11. Übungsaufgaben zu Teil IV
    6. V. Module
      1. 15. Module: Ein Überblick
        1. Warum Module?
        2. Architektur von Python-Programmen
          1. Wie man ein Programm strukturiert
          2. Importe und Attribute
          3. Module der Standardbibliothek
        3. Funktionsweise eines Imports
          1. 1. Das Modul finden
            1. Der Modulsuchpfad
            2. Die Liste sys.path
            3. Auswahl von Moduldateien
          2. 2. Das Modul (vielleicht) übersetzen
          3. 3. Das Modul ausführen
      2. 16. Grundlagen der Modulerzeugung
        1. Erzeugung von Modulen
        2. Benutzung von Modulen
          1. Die import-Anweisung
          2. Die from-Anweisung
          3. Die Anweisung from *
          4. Importe erfolgen nur einmal
          5. import und from sind Zuweisungen
          6. Änderung von Namen über Dateigrenzen hinweg
          7. Äquivalenz von import und from
        3. Modulnamensräume
          1. Dateien erzeugen Namensräume
          2. Qualifikation von Attributnamen
          3. Importe im Vergleich zu Gültigkeitsbereichen
          4. Verschachtelte Namensräume
        4. Nachladen von Modulen
          1. Allgemeine Form
          2. Beispiel
      3. 17. Modul-Pakete
        1. Grundlagen
          1. Pakete und Suchpfad-Einstellungen
          2. Paketdateien namens _ _init_ _.py
        2. Beispiele für Paket-Importe
          1. Vergleich von from und import in Paketen
        3. Wozu Paket-Importe?
        4. Eine Geschichte von drei Systemen
      4. 18. Weiterführende Modul-Themen
        1. Datenkapselung in Modulen
          1. Schadensbegrenzung bei from *: _X und _ _all_ _
        2. Zukünftige Sprachmerkmale aktivieren
        3. Gemischte Verwendungsmodi: _ _name_ _ und _ _main_ _
        4. Modulsuchpfad ändern
        5. Die Import-Erweiterung »as«
        6. Konzepte des Modulentwurfs
          1. Module sind Objekte: Metaprogramme
        7. Fallstricke bei Modulen
          1. Module mit Namensstrings importieren
          2. from kopiert Namen, aber verknüpft nicht
          3. Die Reihenfolge der Anweisungen in Code auf der obersten Ebene ist wichtig
          4. Rekursive Importe mit »from« funktionieren manchmal nicht
          5. reload hat keinen Einfluss auf Importe mit »from«
          6. Interaktives Testen mit reload und from
          7. reload wird nicht transitiv angewendet
        8. Übungsaufgaben zu Teil V
    7. VI. Klassen und OOP
      1. 19. Objektorientierung in Python
        1. Warum Klassen?
        2. OOP aus 10.000 Meter Höhe betrachtet
          1. Attributsuche durch Vererbung
          2. Programmierung von Klassenbäumen
          3. OOP dreht sich um Code-Wiederverwendung
      2. 20. Grundlagen von Klassen
        1. Klassen erzeugen mehrere Instanz-Objekte
          1. Klassen-Objekte definieren Standardverhalten
          2. Instanz-Objekte werden von Klassen generiert
          3. Ein Beispiel
        2. Klassen werden durch Vererbung spezialisiert
          1. Ein weiteres Beispiel
          2. Klassen und Module
        3. Klassen können Python-Operatoren abfangen
          1. Ein drittes Beispiel
          2. Wozu Operatorenüberladung?
      3. 21. Details der Klassenkodierung
        1. Die class-Anweisung
          1. Allgemeine Form
          2. Beispiel
        2. Methoden
          1. Beispiel
          2. Oberklassen-Konstruktoren aufrufen
          3. Weitere Möglichkeiten für Methodenaufrufe
        3. Vererbung
          1. Attributbaum erzeugen
          2. Geerbte Methoden spezialisieren
          3. Techniken der Klassen-Schnittstellen
          4. Abstrakte Oberklassen
        4. Operatorenüberladung
          1. Häufige Operatorenüberladungsmethoden
          2. _ _getitem_ _ fängt Indexverweise ab
          3. _ _getitem_ _ und _ _iter_ _ implementieren Iteration
            1. Benutzerdefinierte Iteratoren
          4. _ _getattr_ _ und _ _setattr_ _ fangen Attributverweise ab
          5. _ _repr_ _ und _ _str_ _ geben String-Darstellungen zurück
          6. _ _radd_ _ behandelt rechtsseitige Addition
          7. Aufrufe mit _ _call_ _ abfangen
          8. Der Destruktor _ _del_ _
        5. Namensräume: Die ganze Geschichte
          1. Nicht-qualifizierte Namen sind global, wenn nicht zugewiesen
          2. Qualifizierte Namen: Objekt-Namensräume
          3. Zuweisungen klassifizieren Namen
          4. Namensraum-Dictionaries
          5. Namensraum-Verknüpfungen
      4. 22. Design mit Klassen
        1. Python und OOP
          1. Überladung von Aufrufsignaturen
        2. Klassen als Datensätze
        3. OOP und Vererbung: »ist-ein«
        4. OOP und Komposition: »hat-ein«
          1. Wiederholung: Strom-Prozessoren
        5. OOP und Delegation
        6. Mehrfach-Vererbung
        7. Klassen sind Objekte: Generische Objektfabriken
          1. Wozu Fabriken?
        8. Methoden sind Objekte: gebunden oder ungebunden
        9. Wiederholung: Dokumentations-Strings
        10. Klassen und Module im Vergleich
      5. 23. Weiterführende Themen zu Klassen
        1. Erweiterung eingebauter Typen
          1. Erweiterung von Typen durch Einbettung
          2. Erweiterung von Typen durch Unterklassen
        2. Pseudo-private Klassenattribute
          1. Überblick über die Namensverstümmelung
          2. Wozu dienen pseudo-private Attribute?
        3. Klassen »neuen Stils« in Python 2.2
          1. Änderung bei diamantförmiger Vererbung
            1. Beispiel für diamantförmige Vererbung
            2. Explizite Konfliktlösung
          2. Weitere Klassenerweiterungen neuen Stils
            1. Statische Methoden und Klassenmethoden
            2. Instanz-Slots
            3. Klassen-Properties
            4. Neue Überladungsmethode _ _getattribute_ _
        4. Fallstricke bei Klassen
          1. Nebeneffekte von Änderungen an Klassenattributen
          2. Mehrfach-Vererbung: Die Reihenfolge zählt
          3. Übertriebene Umhüller-itis
        5. Übungsaufgaben zu Teil VI
    8. VII. Ausnahmen und Werkzeuge
      1. 24. Grundlagen zu Ausnahmen
        1. Warum Ausnahmen?
          1. Anwendungen von Ausnahmen
        2. Ausnahmebehandlung: Die Kurzfassung
        3. Die try/except/else-Variante
          1. Klauseln der try-Anweisung
          2. Die try/else-Klausel
          3. Beispiel: Standardverhalten
          4. Beispiel: Eingebaute Ausnahmen abfangen
        4. Die try/finally-Variante
          1. Beispiel: Finalisierungsaktionen mit try/finally
        5. Die vereinheitlichte try/except/finally-Anweisung
        6. Die raise-Anweisung
          1. Beispiel: Benutzerdefinierte Ausnahmen auslösen und abfangen
          2. Beispiel: raise mit zusätzlichen Daten
          3. Beispiel: Ausnahmen mit raise weitergeben
        7. Die assert-Anweisung
          1. Beispiel: Beschränkungen (aber nicht Fehler) abfangen
      2. 25. Ausnahme-Objekte
        1. Stringbasierte Ausnahmen
        2. Klassenbasierte Ausnahmen
          1. Beispiel: Klassen-Ausnahme
          2. Warum Klassen-Ausnahmen?
          3. Eingebaute Ausnahme-Klassen
          4. Ausgabe des Ausnahme-Textes
          5. Extra-Daten an Instanzen übergeben
            1. Beispiel: Extra-Daten bei Klassen und Strings
        3. Allgemeine Formen der raise-Anweisung
      3. 26. Entwurf mit Ausnahmen
        1. Verschachtelte Ausnahme-Behandler
          1. Beispiel: Verschachtelter Kontrollfluss
          2. Beispiel: Syntaktische Verschachtelung
        2. Code-Idiome zu Ausnahmen
          1. Ausnahmen sind nicht immer Fehler
          2. Funktionen signalisieren Bedingungen mit raise
          3. Fehlersuche mit äußeren try-Anweisungen
          4. Tests innerhalb des Prozesses ausführen
        3. Tipps zum Entwurf mit Ausnahmen
          1. Was man verpacken sollte
          2. Zu viel abfangen
          3. Zu wenig abfangen
        4. Fallstricke bei Ausnahmen
          1. String-Ausnahmen werden nach Identität, nicht nach Gleichheit verglichen
          2. Das Falsche abfangen
        5. Zusammenfassung zum Sprachkern
          1. Python-Werkzeuge
          2. Entwicklungswerkzeuge für größere Projekte
        6. Übungsaufgaben zu Teil VII
    9. VIII. Die Hülle
      1. 27. Typische Aufgaben in Python
          1. Eigene Experimente
        1. Konvertierung, Zahlen und Vergleiche
        2. Manipulation von Strings
          1. Das string-Modul
          2. Komplizierte String-Übereinstimmungen mit regulären Ausdrücken
            1. Ein echtes Problem mit regulären Ausdrücken
        3. Modifikation von Datenstrukturen
          1. Kopieren
            1. Das copy-Modul
          2. Sortieren
          3. Randomisierung
          4. Neue Datenstrukturen konstruieren
          5. Erstellen neuer Listen und Dictionaries
        4. Bearbeiten von Dateien und Verzeichnissen
          1. Die Module os und os.path
          2. Dateien und Verzeichnisse kopieren: Das shutil-Modul
          3. Dateinamen und Verzeichnisse
          4. Mustersuche in Dateinamen
          5. Temporäre Dateien
          6. Ein- und Ausgaben modifizieren
          7. Standardein- und -ausgabe zur Dateibearbeitung
            1. Finden aller Zeilen, die mit einem # anfangen
            2. Extrahieren der vierten Spalte einer Datei (wobei Spalten durch leere Zeichen definiert werden)
            3. Extrahieren der vierten Spalte einer Datei, Doppelpunkte als Trennzeichen, in Kleinbuchstaben umwandeln
            4. Ausgeben der ersten 10 Zeilen, der letzten 10 Zeilen und jeder zweiten Zeile
            5. Zählen, wie oft das Wort »Python« in einer Datei vorkommt
            6. Umwandlung einer Liste von Spalten in eine Liste von Zeilen
            7. Wahl der Blockgröße
          8. Etwas mit mehreren auf der Kommandozeile angegeben Dateien machen
          9. Alle Zeilen einer oder mehrerer Dateien bearbeiten
          10. Behandlung von Binärdaten: Das struct-Modul
        5. Internet-bezogene Module
          1. Das cgi-Modul
          2. URLs manipulieren: Die Module urllib und urlparse
          3. Spezielle Internet-Protokolle
          4. Bearbeitung von Internet-Daten
          5. XML-Verarbeitung
        6. Ausführung von Programmen
        7. Fehlersuche, Testen, Zeitmessung, Optimierung
          1. Fehlersuche mit pdb
          2. Testen mit unittest
          3. Zeitmessung
        8. Übungsaufgaben
      2. 28. Frameworks
        1. Ein automatisches Beschwerdesystem
          1. Auszug aus der HTML-Datei
        2. Verbindung mit COM: Billige Öffentlichkeitsarbeit
        3. Ein auf Tkinter basierender GUI-Editor zum Bearbeiten von Formulardaten
          1. Das Hauptprogramm
          2. Der Formular-Editor
          3. Designüberlegungen
        4. Jython: Die glückliche Ehe zwischen Python und Java
          1. Jython bietet Python-Programmierern Zugang zu Java-Bibliotheken
          2. Jython als Java-Skriptsprache
          3. Eine echte Jython/Swing-Anwendung: grapher.py
        5. Übungsaufgaben
      3. 29. Python-Ressourcen
        1. Verschiedene Ebenen der Gemeinschaft
          1. Der Kern
          2. Lokale Benutzergruppen
          3. Konferenzen und Workshops
          4. Wo man Hilfe bekommt
            1. Python-help
            2. Python-tutor
            3. Python-list
          5. SIGs (Special Interest Groups)
          6. Python-dev
          7. Nachrichtenquellen
        2. Der Entwicklungsprozess
        3. Dienstleistungen und Produkte
        4. Der juristische Rahmen: Die Python Software Foundation
        5. Software
          1. Suchen im Web
          2. Suchen in Archiven von Mailinglisten
          3. Die Website »Vaults of Parnassus«
          4. Der Python-Paket-Index (PyPI)
          5. Suchen im Python Cookbook
        6. Beliebte Software von Drittanbietern
          1. Schnittstellen zu Windows und MacOS
            1. Windows
            2. Macintosh
          2. Bibliotheken für spezielle Aufgaben
            1. Bibliotheken für wissenschaftliches Rechnen
            2. Schnittstellen zu relationalen Databanken
            3. Grafik-Bibliotheken
              1. Python Imaging Library (PIL)
              2. PyGame und PyOpenGL
          3. Schnittstellen zu GUI-Toolkits
          4. Schnittstellen zu C/C++/Fortran
            1. SWIG und f2py
            2. CXX und Boost::Python
            3. Pyrex, Weave und Psyco
            4. ctypes
          5. Verschiedene Kleinode
          6. Paketierungswerkzeuge
        7. Webanwendungs-Frameworks
          1. Zope
          2. Twisted
          3. Quixote
          4. Webware, Spyce und mehr
        8. Werkzeuge für Python-Entwickler
    10. IX. Anhang
      1. A. Installation und Konfiguration
        1. Installation des Python-Interpreters
          1. Wo man Python findet
          2. Installationsschritte
          3. Konfigurationsschritte
            1. Python-Umgebungsvariablen
          4. Einstellung von Konfigurationsoptionen
            1. UNIX/Linux-Shell-Variablen
            2. DOS-Variablen (Windows)
            3. Weitere Windows-Optionen
            4. Pfaddateien
      2. B. Lösungen zu den Übungsaufgaben
        1. Teil I: Einleitung
        2. Teil II: Typen und Operationen
        3. Teil III: Anweisungen und Syntax
        4. Teil IV: Funktionen
        5. Teil V: Module
        6. Teil VI: Klassen und OOP
        7. Teil VII: Ausnahmen und Werkzeuge
        8. Teil VIII: Die Hülle
          1. Kapitel 27: Typische Aufgaben in Python
          2. Kapitel 28: Frameworks
    11. Kolophon