Grundlagen der Programmiersprache Python
Programmiersprachen gibt es viel. Kaum eine ist dabei aber so intuitiv zu erlernen und einfach zu verstehen wie die Interpreter-Sprache Python.

von Marcus Fischer Python wurde von Guido van Rossum 1991 als Nachfolger der Programmier- Lehrsprache ABC veröffentlicht. Der Name geht auf die englische Komiker-Gruppe Monty Python zurück. Als Beleg dafür gelten zahlreiche Verweise in der offiziellen Dokumentation. Dennoch setzte sich die Asso...
von Marcus Fischer
Python wurde von Guido van Rossum 1991 als Nachfolger der Programmier- Lehrsprache ABC veröffentlicht. Der Name geht auf die englische Komiker-Gruppe Monty Python zurück. Als Beleg dafür gelten zahlreiche Verweise in der offiziellen Dokumentation. Dennoch setzte sich die Assoziation zur Schlangengattung durch. Seit Beginn seiner Entwicklung folgt Python zwei grundlegenden Grundsätzen:1. Einfachheit: Die Syntax von Python ist sehr einfach und verständlich, sodass sich auch Ein- und Umsteiger schnell zurechtfinden. Um die Übersichtlichkeit zu erhöhen, erfolgt die Strukturierung von Anweisungsblöcken nicht durch besondere Zeichen (; oder {}), sondern durch Einrücken.2. Freiheit: Python ist eine Multiparadigmensprache und unterstützt verschiedene Programmierstile, wie
- objektorientiertes,
- funktionelles oder
- aspektorientiertes Programmieren.
Programme schreiben
Sie haben grundsätzlich drei verschiedene Möglichkeiten, Programme zu schreiben. Die erste Möglichkeit beinhaltet die interaktive Python-Konsole, die Bestandteil des Python-Installationspaketes ist. Die Arbeitsweise dieser Konsole ist ähnlich der Shell unter Linux. Sie ist gleichermaßen bei Einsteigern und Profis beliebt.

Gerade zum Testen von kleineren Abschnitten des Quelltextes ist sie nützlich, da die eingegebenen Befehle sofort ausgeführt werden. Für Einsteiger gibt es zusätzlich eine besonders benutzerfreundliche Variante namens bpython.Selbstverständlich können Sie auch normale Texteditoren zur Code-Erstellung verwenden und in Kombination mit der Konsole zur Ausführung bringen. Selbst Texteditoren für Programmierer wie Vim oder Emacs lassen sich für Python anpassen.Darüber hinaus existieren für Python zahlreiche Entwicklungsumgebungen. Diese erfüllen teilweise spezielle Aufgaben wie beispielsweise das Eric Python IDE, es gibt allerdings auch Python-Plugins für größere IDEs wie Eclipse und Netbeans.Python ist kostenlos von www.python.org zu beziehen. Den meisten Linux- Distributionen liegt es standardmäßig bei oder ist in den Paketarchiven vorhanden, da es zumeist eine der drei Sprachen ist, die oft in einer LAMP-Server-Umgebung eingesetzt werden.
Einsatz
Python ist in der Praxis weit verbreitet. So nutzen viele Web-Application-Frameworks Python, beispielsweise Django oder Zope. Es existiert sogar ein Python-Interpreter für das Symbian-Betriebssystem, sodass Python selbst auf Mobiltelefonen Verbreitung gefunden hat.Python hat sogar Einfluss auf das 100-Dollar- Laptop: Es dient als Standardsprache für die Benutzeroberfläche. Um seinen Benutzern einen Einblick hinter die Kulissen zu gewähren, kann während der Benutzung der grafischen Benutzeroberfläche auf Knopfdruck der aktuelle Python-Quellcode angezeigt werden.
Seit Anfang 2009 ist parallel zu der 2.x-Reihe ebenfalls Python 3 verfügbar. In Python 3 hat es zwar keine fundamentalen Veränderungen der Sprache gegeben, die Veränderungen waren dennoch zu groß, um die Kompatibilität zur 2.x-Reihe sicherzustellen zu können.So wurden viele kleine Unzulänglichkeiten von Python 2.x beseitigt. Um den Übergang von Python 2 auf 3 so sanft wie möglich zu gestalten, wird die 2.x-Reihe noch mindestens bis Ende 2010 voll unterstützt und gepflegt. Gerade ist die 2.7-Version in der Betaphase. Mit dem Kommandozeilenparameter -3 können Sie sich alle Konstrukte in ihrem Code anzeigen lassen, die es in Python 3.0 nicht mehr gibt.
Code
Durch die einfache Struktur ist eine Entwicklungsumgebung nicht zwingend nötig. Editoren bieten viele Hilfen wie Syntaxhervorhebung oder automatische Einrückung. Die Vorgehensweise ist sehr einfach: Zuerst erstellen Sie den Quelltext und speichern diesen als *.py. In einem zweiten Schritt öffnen Sie ein Terminal beziehungsweise die Eingabeaufforderung und wechseln in das Verzeichnis der Quelldatei. In diesem Ordner können Sie durch den Befehl python programm.py den Code ausführen.

Eine der größten Stärken von Python ist die riesige Bibliothek. Hier finden sich Standards, um sich die Arbeit als Programmierer deutlich zu vereinfachen. Die meisten Funktionen sind plattformunabhängig, sodass selbst große Python-Projekte ohne große Änderungen leicht auf Unix, Windows, Mac OS X oder andere Plattformen portiert werden können. Besonders praktisch ist die Möglichkeit der Kombination der Module mit in C oder Python selbst geschriebenen Modulen.Durch das mitgelieferte Modul Tkinter gelingt selbst das Erstellen grafischer Oberflächen ähnlich einfach wie unter Perl oder TCL. Aber auch die Anbindung an GUI-Bibliotheken anderer Programmiersprachen ist mit Modulen wie PyGTK oder PyQt überhaupt gar kein Problem.
Internes
Die Vorgehensweise bei der Ausführung von Python-Programmen folgt einem einfachen Schema: Der Text eines Python- Programms wird transparent in einen Zwischencode übersetzt. Letzterer wird dann von einem Interpreter ausgeführt. Eine besonders hohe Flexibilität erreichen Sie durch die Möglichkeit, Programme anderer Sprachen als Modul einzubetten.
Ihre Programme können dann das Beste aus verschiedenen Welten in einem Python- Rahmen kombinieren. Python kann aber auch als Skriptsprache eines anderen Programms dienen, wie dies beispielsweise bei OpenOffice.org der Fall ist.Datentypen werden dynamisch verwaltet, es existiert also keine statische Typ- Prüfung, wie es beispielsweise bei C++ der Fall ist. Eine weitere nützliche Eigenschaft ist die automatische Speicherbereinigung, die nicht mehr benutzte Speicherbereiche freigibt.Besonders interessant ist auch die Ausnahmebehandlung unter Python, die eine Syntaxüberprüfung von Programmstrukturen während der Laufzeit gestattet. Betrachten Sie als Beispiel den Programmcode im Screenshot unten auf dieser Seite. Dieser Code wird den Benutzer so lange nach einer Nummer fragen, bis dieser einen String eingibt, der sich per int() in eine Ganzzahl konvertieren lässt, ohne dass ein Fehler auftritt.Python hat selbstverständlich auch einige Schwächen. So sind einige in anderen Sprachen gebräuchliche Kontrollstrukturen (beispielsweise do/while) in Python nicht vorhanden. Diese müssen durch ein äquivalentes while True: ... break substituiert werden.Und auch die Unterstützung von Multiprozessor- Systemen ist verbesserungswürdig. Der sogenannte Global Interpreter Lock (GIL) senkt bei CPython, also der C-Implementierung von Python, die Effizienz von Python-Anwendungen bei Verwendung von Multithreading.Dieses Problem tritt allerdings beispielsweise unter Jython (vormals JPython; Java-Implementierung) nicht auf. Eine Möglichkeit der Lösung wäre es, statt Threads mehrere miteinander kommunizierende Prozesse zu verwenden.