Das Python-Praxisbuch
Der große Profi-Leitfaden für Programmierer
Seiten
2008
Addison Wesley ein Imprint von Pearson Deutschland (Verlag)
978-3-8273-2543-3 (ISBN)
Addison Wesley ein Imprint von Pearson Deutschland (Verlag)
978-3-8273-2543-3 (ISBN)
- Titel ist leider vergriffen;
keine Neuauflage - Artikel merken
(aus der Einleitung)
Was enthält dieses Buch?
Das Python-Praxisbuch gliedert sich in drei Hauptteile:* Teil I: Die Python-Umgebung* Teil II: Python-Grundlagen* Teil III: Anwendungen
Der ersteTeil zeigt, wie man Python installiert, die Python-Shell bedient, ein einfaches Programm startet und vor allem, wie man sich selbst helfen kann, um z.B. Dokumentation zu finden und anzuzeigen.
Bei der Installation von Python hat man die Wahl zwischen einer systemweiten Installation und einer Installation, die nur für einen Benutzer gilt (etwa wenn man keine ausreichenden Schreibrechte auf Systemverzeichnisse besitzt). Wir werden sehen,wie beide Installationen bewerkstelligt werden und nebeneinander koexistieren können.
Da Erweiterungsmodule in Python oft C/C++-Code enthalten, werden wir auch im Falle von Windows den MinGW-Compiler installieren und konfigurieren. Außerdem werden wir die setuptools unserer Python-Installation hinzufügen, um Module aus dem Cheese Shop PyPI automatisch herunterzuladen und zu installieren.
Die wichtigste Information aus diesem ersten Teil ist es, wie man sich in der Python-Shell selbst helfen kann, d.h. wie man neue Module interaktiv erkundet und ihre Dokumentation anzeigen kann. Nachdem Sie den ersten Teil gelesen haben, sollten Sie in der Lage sein, selbstständig existierende Programme zu laden, auszuführen und, zumindest oberflächlich, zu verstehen.
Der zweite Teil enthält das, was man als Programmierer wissen sollte, wenn man Python effektiv einsetzen möchte. Wir werden insbesondere die folgenden Datenstrukturen ausführlich vorstellen und etwas Übung darin gewinnen: Zahlen, Strings, Listen, Dictionarys. Diese Datenstrukturen sind grundlegende Bausteine eines jeden Python-Programms, und es ist sehr wichtig, dass Sie sich damit vertraut machen.
Sehr wichtig sind auch die Themen Funktionen, Dateien und das Dateisystem sowie Klassen und Objekte! Im Kapitel 8, Funktionen, werden Sie mehr über den Übergabemechanismus von Funktionsparametern erfahren, wie man Funktionen mittels Dekoratoren verändert etc. Das Kapitel Dateien und das Dateisystem wird ausführlich die Dateiein- und -ausgabe erklären. In Klassen und Objekte kommt dann endlich die ganze objektorientierte Natur von Python zum Tragen: Während wir bisher nur diverse Klassen (str, list, file etc.) benutzt haben, lernen Sie hier, wie man selbst Klassen schreibt und was man darüber wissen muss.
Den zweiten Teil schließen wir mit einem wichtigenThema ab: Python und C/C++. Dort erfahren Sie, was Python zu einer Hybridsprache macht, d.h. wie man von Python aus C- und C++-Code einbinden kann. Dies ist wichtig, weil man damit nicht nur in der Lage ist, CPU-Flaschenhälse in C zu optimieren, sondern auch, weil man so externe Bibliotheken wie etwa GUI-Toolkits von Python aus benutzen kann.Wir konzentrieren uns in diesem Kapitel auf das externe Tool SWIG, das zwar nicht Bestandteil von Python ist, aber spielend leicht nachinstalliert werden kann.
Nachdem Sie den zweiten Teil gelesen haben, sollten Sie in der Lage sein, jedes Python-Programm selbstständig zu lesen und zu verstehen und ohne fremde Hilfe eigene Python-Programme für alle möglichen Gebiete zu erstellen. Während wir uns im zweiten Teil auf Standardmodule der Python Standard Library beschränkt haben, gehen wir im dritten Teil auf Drittanbietermodule ein, die man alle erst nachträglich installieren muss, wenn man sie denn braucht. Die Kapitel des dritten Teils sind nach Anwendungsgebieten gegliedert.
In Kapitel 12, XML und XSLT, erfahren Sie, wie Sie XML-Daten verarbeiten können; eine Aufgabe, die sehr häufig vorkommt und daher ein eigenes Kapitel erhält. In Kapitel 13, Persistenz und Datenbanken, geht es darum, Daten in normalen Dateien, DBM-Dateien, objektorientierten Datenbanken wie ZODB, SQL-basierten Datenbanken wie SQLite3, PostgreSQL und MySQL und objektorientiert in SQL-Datenbanken mit Hilfe von ORMs (objektrelationalen Mappern) zu speichern. Damit das möglich ist, müssen zuvor komplexe Datenstrukturen oft erst zu Strings serialisiert werden, bevor sie gespeichert werden, und sie sollten umgekehrt aus Strings deserialisiert werden, bevor sie wiederverwendet werden können. Dieses Thema wird ausführlich in diesem Kapitel behandelt.
In Kapitel 14, Netzwerkprogrammierung, erfahren Sie, wie Netzanwendungen erstellt werden, seien es Client/Server- oder Peer-to-Peer-Programme (wussten Sie, dass das ursprüngliche Bittorrent eine Python-Anwendung ist?). Dies kann mit einfachen Bordmitteln der Python Standard Library bewerkstelligt werden, was auch kurz gezeigt wird. Wir werden hier jedoch schwerpunktmäßig das Twisted Framework vorstellen, das nicht nur besonders mächtig und flexibel ist, sondern auch ein ganz eigenartiges nicht-lineares asynchrones event-gesteuertes Programmiermodell mit Deferred und Callbacks besitzt, dem Sie unbedingt einmal in Ihrer Programmiererkarriere begegnet sein sollten!
Das große Gebiet der Webprogrammierung und Web-Frameworks, das technisch als Sonderfall zur Netzprogrammierung gehört, bekommt ein eigenes Kapitel aufgrund seines Umfangs. Dort zeigen wir, wie man eigene Webserver in Python programmiert, aber auch wie man populäre Webserver wie Apache oder Lighttpd an Python anbindet. Wichtiges Thema hier ist die WSGI-Schnittstelle zwischen einer Python-Anwendung und einem WSGI-enabled Webserver. Wir gehen auch auf die legacyCGI-Schnittstelle ein und zeigen, wie man traditionelle CGI-Programme in Python erstellen kann. Viele Webanwendungen trennen die Präsentation von der Logik, indem sie die Präsentation in einer speziellen Template Sprache ausdrücken. Wir werden in diesem Kapitel Text-basierte und XML-basierte Templating-Engines vorstellen, die besonders gern eingesetzt werden.
Immer noch im selben Kapitel gehen wir dann auf Web-Frameworks ein: Das sind Software-Architekturen, in die man eine Webanwendung einbetten kann, und ihr Zweck ist es, dem Anwendungsentwickler viele Details abzunehmen, wie etwa die Sitzungsverwaltung, die Persistenz und das Templating. Wir stellen mit Django ein leichtgewichtiges, aber dennoch mächtiges und flexibles Framework vor, mit dem Websites nach dem MVC-Modell (Model-View-Controller) erstellt werden. Als schwergewichtiges Web-Framework stellen wir kurz Zope und das auf Zope basierende Plone Content Management Framework vor und zeigen, wie man Benutzerdaten dort einschleusen und auswerten kann.
Wer portable Anwendungen erstellen will, ist gut beraten, diese in Form einer Webanwendung zu modellieren. Ein Webbrowser befindet sich auf so gut wie jeder Plattform, und gut geschriebene, sich an Webstandards haltende Web-basierte Anwendungen gehören zu den portabelsten Anwendungen überhaupt. Aber manchmal kommt man nicht umhin, ein lokales Programm samtGUI (GraphicalUser Interface) schreiben zu müssen! Dies ist Gegenstand des Kapitels zu GUI-Toolkits. Dort zeigen wir ausführlich, wie man GUI-Anwendungen mit wxPython, das auf dem populären wxWidgets-Toolkit basiert, erstellen kann. Schwerpunkt ist nicht, jedes einzelne Widget zu zeigen, sondern wie man sich generell in wxPython zurecht findet und sich selbst helfen kann (der rote Faden, erinnern Sie sich?). Neben wxPython stellen wir auch PyQt4 vor, mit dem man das populäre Qt4-Toolkit ansprechen kann. Wir zeigen außerdem mit pythondialog ein kleines minimales Toolkit, mit dessen Hilfe man Text-basierte GUIs programmieren kann, sollte ausnahmsweise mal kein grafisches Fenstersystem zur Verfügung stehen.
Wir werden besondere Aufmerksamkeit dem Thema des »eingefrorenen GUIs« widmen und zeigen, wie man mit Timern, Threads und anderen Techniken responsive GUIs erstellen kann, die auch dann weiterhin auf Benutzereingaben reagieren, wenn länger laufende Operationen ausgeführt werden. Auch die Integration zwischen Twisted und wxPython wird anhand eines Beispiels gezeigt.
Das letzte Kapitel, Python für Wissenschaftler, greift den Faden auf, den wir im einführenden Kapitel Zahlen aufgegeben haben, und führt ihn dort fort. Wir zeigen, wie man Brüche, aber auch einfach symbolische Variablen und Ausdrücke verwenden kann. Ganz so wie bei Maxima, Mathematica und Maple lässt sich von Python aus mit Hilfe des sympy-Moduls ein CAS (ComputerAlgebra System) aufsetzen, das erstaunlich vielseitig und flexibel ist. Neben CAS benötigen Wissenschaftler und Ingenieure Bibliotheken mit rechenintensiven Routinen (wie etwa Interpolation, numerische Integration, schnelle Fourier-Transformationen usw.) und Routinen, die mit großen Datenmengen umgehen sollen (Lineare Algebra, oft mit dünn besetzten, riesigen Matrizen). All dies ließe sich in Python codieren, aber da Python dafür doch etwas langsam wäre und vor allem viel Speicherplatz benötigen würde, verwendet man lieber die bewährten in FORTRAN und C geschriebenen und ausgiebig getesteten Bibliotheken BLAS, LAPACK, ATLAS usw. Wir stellen daher mit scipy einen Python-Wrapper um diese Routinen vor. Außerden zeigen wir, wie man mit matplotlib einen Graphen-Zeichner ähnlich MATLAB erhält.
Der Sinn dieses letzten, doch sehr auf Mathematik fokussierten Kapitels liegt darin zu zeigen, wie tief und ausgefeilt manche Python-Module sein können. Egal, welches Anwendungsgebiet Ihnen vorschwebt: Es kann sein, dass es dafür bereits sehr fortgeschrittene Module gibt, auch wenn sie nicht in der Python Standard Library zu finden sind. Mit etwasGeduld und Suche werden auch Sie ganz sicher das Modul finden, das für Ihre Anwendung ideal passen wird. Und wenn nicht, dann schreiben Sie es doch einfach und übertragen es zum Cheese Shop PyPI, damit die Community davon profitieren kann, genauso wie Sie aus den vielen fertigen Modulen einen Nutzen ziehenkonnten. Schließlich lebt jedes Open Source-Projekt nach diesem Modell!
Was enthält dieses Buch?
Das Python-Praxisbuch gliedert sich in drei Hauptteile:* Teil I: Die Python-Umgebung* Teil II: Python-Grundlagen* Teil III: Anwendungen
Der ersteTeil zeigt, wie man Python installiert, die Python-Shell bedient, ein einfaches Programm startet und vor allem, wie man sich selbst helfen kann, um z.B. Dokumentation zu finden und anzuzeigen.
Bei der Installation von Python hat man die Wahl zwischen einer systemweiten Installation und einer Installation, die nur für einen Benutzer gilt (etwa wenn man keine ausreichenden Schreibrechte auf Systemverzeichnisse besitzt). Wir werden sehen,wie beide Installationen bewerkstelligt werden und nebeneinander koexistieren können.
Da Erweiterungsmodule in Python oft C/C++-Code enthalten, werden wir auch im Falle von Windows den MinGW-Compiler installieren und konfigurieren. Außerdem werden wir die setuptools unserer Python-Installation hinzufügen, um Module aus dem Cheese Shop PyPI automatisch herunterzuladen und zu installieren.
Die wichtigste Information aus diesem ersten Teil ist es, wie man sich in der Python-Shell selbst helfen kann, d.h. wie man neue Module interaktiv erkundet und ihre Dokumentation anzeigen kann. Nachdem Sie den ersten Teil gelesen haben, sollten Sie in der Lage sein, selbstständig existierende Programme zu laden, auszuführen und, zumindest oberflächlich, zu verstehen.
Der zweite Teil enthält das, was man als Programmierer wissen sollte, wenn man Python effektiv einsetzen möchte. Wir werden insbesondere die folgenden Datenstrukturen ausführlich vorstellen und etwas Übung darin gewinnen: Zahlen, Strings, Listen, Dictionarys. Diese Datenstrukturen sind grundlegende Bausteine eines jeden Python-Programms, und es ist sehr wichtig, dass Sie sich damit vertraut machen.
Sehr wichtig sind auch die Themen Funktionen, Dateien und das Dateisystem sowie Klassen und Objekte! Im Kapitel 8, Funktionen, werden Sie mehr über den Übergabemechanismus von Funktionsparametern erfahren, wie man Funktionen mittels Dekoratoren verändert etc. Das Kapitel Dateien und das Dateisystem wird ausführlich die Dateiein- und -ausgabe erklären. In Klassen und Objekte kommt dann endlich die ganze objektorientierte Natur von Python zum Tragen: Während wir bisher nur diverse Klassen (str, list, file etc.) benutzt haben, lernen Sie hier, wie man selbst Klassen schreibt und was man darüber wissen muss.
Den zweiten Teil schließen wir mit einem wichtigenThema ab: Python und C/C++. Dort erfahren Sie, was Python zu einer Hybridsprache macht, d.h. wie man von Python aus C- und C++-Code einbinden kann. Dies ist wichtig, weil man damit nicht nur in der Lage ist, CPU-Flaschenhälse in C zu optimieren, sondern auch, weil man so externe Bibliotheken wie etwa GUI-Toolkits von Python aus benutzen kann.Wir konzentrieren uns in diesem Kapitel auf das externe Tool SWIG, das zwar nicht Bestandteil von Python ist, aber spielend leicht nachinstalliert werden kann.
Nachdem Sie den zweiten Teil gelesen haben, sollten Sie in der Lage sein, jedes Python-Programm selbstständig zu lesen und zu verstehen und ohne fremde Hilfe eigene Python-Programme für alle möglichen Gebiete zu erstellen. Während wir uns im zweiten Teil auf Standardmodule der Python Standard Library beschränkt haben, gehen wir im dritten Teil auf Drittanbietermodule ein, die man alle erst nachträglich installieren muss, wenn man sie denn braucht. Die Kapitel des dritten Teils sind nach Anwendungsgebieten gegliedert.
In Kapitel 12, XML und XSLT, erfahren Sie, wie Sie XML-Daten verarbeiten können; eine Aufgabe, die sehr häufig vorkommt und daher ein eigenes Kapitel erhält. In Kapitel 13, Persistenz und Datenbanken, geht es darum, Daten in normalen Dateien, DBM-Dateien, objektorientierten Datenbanken wie ZODB, SQL-basierten Datenbanken wie SQLite3, PostgreSQL und MySQL und objektorientiert in SQL-Datenbanken mit Hilfe von ORMs (objektrelationalen Mappern) zu speichern. Damit das möglich ist, müssen zuvor komplexe Datenstrukturen oft erst zu Strings serialisiert werden, bevor sie gespeichert werden, und sie sollten umgekehrt aus Strings deserialisiert werden, bevor sie wiederverwendet werden können. Dieses Thema wird ausführlich in diesem Kapitel behandelt.
In Kapitel 14, Netzwerkprogrammierung, erfahren Sie, wie Netzanwendungen erstellt werden, seien es Client/Server- oder Peer-to-Peer-Programme (wussten Sie, dass das ursprüngliche Bittorrent eine Python-Anwendung ist?). Dies kann mit einfachen Bordmitteln der Python Standard Library bewerkstelligt werden, was auch kurz gezeigt wird. Wir werden hier jedoch schwerpunktmäßig das Twisted Framework vorstellen, das nicht nur besonders mächtig und flexibel ist, sondern auch ein ganz eigenartiges nicht-lineares asynchrones event-gesteuertes Programmiermodell mit Deferred und Callbacks besitzt, dem Sie unbedingt einmal in Ihrer Programmiererkarriere begegnet sein sollten!
Das große Gebiet der Webprogrammierung und Web-Frameworks, das technisch als Sonderfall zur Netzprogrammierung gehört, bekommt ein eigenes Kapitel aufgrund seines Umfangs. Dort zeigen wir, wie man eigene Webserver in Python programmiert, aber auch wie man populäre Webserver wie Apache oder Lighttpd an Python anbindet. Wichtiges Thema hier ist die WSGI-Schnittstelle zwischen einer Python-Anwendung und einem WSGI-enabled Webserver. Wir gehen auch auf die legacyCGI-Schnittstelle ein und zeigen, wie man traditionelle CGI-Programme in Python erstellen kann. Viele Webanwendungen trennen die Präsentation von der Logik, indem sie die Präsentation in einer speziellen Template Sprache ausdrücken. Wir werden in diesem Kapitel Text-basierte und XML-basierte Templating-Engines vorstellen, die besonders gern eingesetzt werden.
Immer noch im selben Kapitel gehen wir dann auf Web-Frameworks ein: Das sind Software-Architekturen, in die man eine Webanwendung einbetten kann, und ihr Zweck ist es, dem Anwendungsentwickler viele Details abzunehmen, wie etwa die Sitzungsverwaltung, die Persistenz und das Templating. Wir stellen mit Django ein leichtgewichtiges, aber dennoch mächtiges und flexibles Framework vor, mit dem Websites nach dem MVC-Modell (Model-View-Controller) erstellt werden. Als schwergewichtiges Web-Framework stellen wir kurz Zope und das auf Zope basierende Plone Content Management Framework vor und zeigen, wie man Benutzerdaten dort einschleusen und auswerten kann.
Wer portable Anwendungen erstellen will, ist gut beraten, diese in Form einer Webanwendung zu modellieren. Ein Webbrowser befindet sich auf so gut wie jeder Plattform, und gut geschriebene, sich an Webstandards haltende Web-basierte Anwendungen gehören zu den portabelsten Anwendungen überhaupt. Aber manchmal kommt man nicht umhin, ein lokales Programm samtGUI (GraphicalUser Interface) schreiben zu müssen! Dies ist Gegenstand des Kapitels zu GUI-Toolkits. Dort zeigen wir ausführlich, wie man GUI-Anwendungen mit wxPython, das auf dem populären wxWidgets-Toolkit basiert, erstellen kann. Schwerpunkt ist nicht, jedes einzelne Widget zu zeigen, sondern wie man sich generell in wxPython zurecht findet und sich selbst helfen kann (der rote Faden, erinnern Sie sich?). Neben wxPython stellen wir auch PyQt4 vor, mit dem man das populäre Qt4-Toolkit ansprechen kann. Wir zeigen außerdem mit pythondialog ein kleines minimales Toolkit, mit dessen Hilfe man Text-basierte GUIs programmieren kann, sollte ausnahmsweise mal kein grafisches Fenstersystem zur Verfügung stehen.
Wir werden besondere Aufmerksamkeit dem Thema des »eingefrorenen GUIs« widmen und zeigen, wie man mit Timern, Threads und anderen Techniken responsive GUIs erstellen kann, die auch dann weiterhin auf Benutzereingaben reagieren, wenn länger laufende Operationen ausgeführt werden. Auch die Integration zwischen Twisted und wxPython wird anhand eines Beispiels gezeigt.
Das letzte Kapitel, Python für Wissenschaftler, greift den Faden auf, den wir im einführenden Kapitel Zahlen aufgegeben haben, und führt ihn dort fort. Wir zeigen, wie man Brüche, aber auch einfach symbolische Variablen und Ausdrücke verwenden kann. Ganz so wie bei Maxima, Mathematica und Maple lässt sich von Python aus mit Hilfe des sympy-Moduls ein CAS (ComputerAlgebra System) aufsetzen, das erstaunlich vielseitig und flexibel ist. Neben CAS benötigen Wissenschaftler und Ingenieure Bibliotheken mit rechenintensiven Routinen (wie etwa Interpolation, numerische Integration, schnelle Fourier-Transformationen usw.) und Routinen, die mit großen Datenmengen umgehen sollen (Lineare Algebra, oft mit dünn besetzten, riesigen Matrizen). All dies ließe sich in Python codieren, aber da Python dafür doch etwas langsam wäre und vor allem viel Speicherplatz benötigen würde, verwendet man lieber die bewährten in FORTRAN und C geschriebenen und ausgiebig getesteten Bibliotheken BLAS, LAPACK, ATLAS usw. Wir stellen daher mit scipy einen Python-Wrapper um diese Routinen vor. Außerden zeigen wir, wie man mit matplotlib einen Graphen-Zeichner ähnlich MATLAB erhält.
Der Sinn dieses letzten, doch sehr auf Mathematik fokussierten Kapitels liegt darin zu zeigen, wie tief und ausgefeilt manche Python-Module sein können. Egal, welches Anwendungsgebiet Ihnen vorschwebt: Es kann sein, dass es dafür bereits sehr fortgeschrittene Module gibt, auch wenn sie nicht in der Python Standard Library zu finden sind. Mit etwasGeduld und Suche werden auch Sie ganz sicher das Modul finden, das für Ihre Anwendung ideal passen wird. Und wenn nicht, dann schreiben Sie es doch einfach und übertragen es zum Cheese Shop PyPI, damit die Community davon profitieren kann, genauso wie Sie aus den vielen fertigen Modulen einen Nutzen ziehenkonnten. Schließlich lebt jedes Open Source-Projekt nach diesem Modell!
Erscheint lt. Verlag | 29.9.2008 |
---|---|
Reihe/Serie | Open source library |
Sprache | deutsch |
Gewicht | 1980 g |
Einbandart | gebunden |
Themenwelt | Informatik ► Programmiersprachen / -werkzeuge ► Python |
Schlagworte | objektorientiert • Profi • Python (Programmiersprache) • Rezepte • Skriptprogrammierung • Umstieg |
ISBN-10 | 3-8273-2543-9 / 3827325439 |
ISBN-13 | 978-3-8273-2543-3 / 9783827325433 |
Zustand | Neuware |
Haben Sie eine Frage zum Produkt? |
Mehr entdecken
aus dem Bereich
aus dem Bereich
Buch | Hardcover (2012)
Westermann Schulbuchverlag
34,95 €
Schulbuch Klassen 7/8 (G9)
Buch | Hardcover (2015)
Klett (Verlag)
30,50 €
Buch | Softcover (2004)
Cornelsen Verlag
25,25 €