Schlangenbiss

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.

image.jpg

© Internet Magazin

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.
Neben den Standardfunktionen und -Objekten, gibt es eine sehr große Bibliothek mit Paketen zu verschiedensten Problemstellungen. Sie reichen von einfachen Aufgaben wie der XML- oder HTML-Verarbeitung bis hin zu Funktionen, welche im universitären oder wissenschaftlichen Umfeld benötigt werden.

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.

image.jpg

© Internet Magazin

Zentrale Anlaufstelle für Dokumentation, Beispielcode, Interpreter und vielem mehr: www.python.org.

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.

image.jpg

© Internet Magazin

Hier sehen Sie eine Ausnahmebehandlung während der Laufzeit am Beispiel einer Zahlenabfrage.

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.

HILFREICHE LINKS

www.python.org abop-german.berlios.de boa-constructor.sourceforge.net

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.

Mehr zum Thema

Youtube Sperre umgehen GEMA
Videos freischalten

So umgehen Sie die GEMA-Sperre bei Youtube. Was Sie dazu brauchen, und wie es am einfachsten geht.
Neue Fritzboxen unterstützen den AC-Standard.
WLAN-Geschwindigkeit verdoppeln

Mehr WLAN-Geschwindigkeit: Mit dem WLAN-Standard 802.11ac und den richtigen Geräten und Einstellungen verdoppeln Sie den Datendurchsatz.
Netflix auf dem TV
Programm in der Übersicht

Welche Filme und Serien gibt es bei Netflix eigentlich zu sehen? Was ist neu im Streaming-Angebot? Diese Antworten helfen weiter.
Netflix
Streaming

Preise, kompatible Geräte, Datenrate, Serien- und Filmangebot von Netflix: Wir beantworten die wichtigsten Fragen rund um den Streaming-Dienst.
Film Amazon Prime Instant Video Warner Bros Emily Browning
Vorschau auf Film- und Serien-Highlights

Prime Instant Video lockt im Oktober mit Highlights wie "Sucker Punch", "Fifty Shades of Grey", "Spotlight" und der zweiten Staffel von "Ash vs. Evil…