IT-Academy Logo
Sign Up Login Help
Home - Programmieren - Python - Die Programmiersprache Python



Die Programmiersprache Python

Python ist nicht nur eine Schlangenart, sondern auch eine Programmiersprache mit einer stetig wachsenden Anzahl von Anhängern. In diesem Artikel wird erklärt, was die Sprache Python so besonders macht.


Autor: Patrick Bucher (paedubucher)
Datum: 10-07-2007, 21:36:05
Referenzen: Python-Artikel auf Wikipedia
Schwierigkeit: Anfänger
Ansichten: 4956x
Rating: 4 (1x bewertet)

Hinweis:

Für den hier dargestellte Inhalt ist nicht der Betreiber der Plattform, sondern der jeweilige Autor verantwortlich.
Falls Sie Missbrauch vermuten, bitten wir Sie, uns unter missbrauch@it-academy.cc zu kontaktieren.

[Druckansicht] [Als E-Mail senden] [Kommentar verfassen]




Die Programmiersprache Python umfasst mehrere Programmierparadigmen. So kann in Python beispielsweise rein prozedural, objektorientiert oder auch funktional programmiert werden. Die ersten Versionen wurden von Guido van Rossum entwickelt, heute wird die Entwicklung durch die Python Software Foundation geleitet.

Python ist eine interpretierte Sprache. D.h. Python-Programmcode wird zunächst in einen Zwischencode umgewandelt, welcher dann vom Python-Interpreter interpretiert und ausgeführt wird.

Der Name "Python" stammt nicht etwa von der Schlangenart der Python, sondern von der bekannten britischen Komikertruppe "Monty Python". Diesen Einfluss kann man noch heute in Python sehen. So werden in Python-Codebeispielen oftmals metasyntaktische Variablen wie spam und eggs statt foo und bar verwendet.

Ziele von Python

Python wurde mit dem Ziel entworfen, einfach erlernbar und andwendbar zu sein. Dies wird durch die folgenden zwei Dinge erreicht:

  • Die Syntax von Python wurde auf das Wesentliche reduziert und auf Übersichtlichkeit optimiert
  • Die Sprache umfasst einen sehr hohen Funktionsumfang in nur sehr wenigen Schlüsselwörtern

In Python kann man auch Module verwenden, die in einer anderen Programmiersprache (z.B. C) geschrieben wurden. So kann man zeitkritische Routinen in einer maschinennahen Programmiersprache schreiben oder in Python als Skriptsprache für andere Programme verwenden (z.B. Gimp, Blender).

Trotz aller Einfachheit von Python, gilt die Sprache als sehr mächtig. So sind z.B. der offizielle BitTorrent-Client, Teile von Googles Suchmaschine sowie der Applikationsserver Zope in Python geschrieben.

Syntax

Eines der Ziele Pythons ist die gute Lesbarkeit des Quellcodes. So verwendet Python englische Schlüsselwörter (and, or, usw.) statt Operatoren (&&, ||, usw.). Weiter besitzt Python weniger syntaktische Konstrukte als z.B. C oder Pascal. So gibt es für Python:
  • Zwei Schleifenformen:
    • Die for-Schleife zur Iteration über die Elemente einer Sequenz
    • Die while-Schleife zur Wiederholung einer Schleife, so lange ein Ausdruck wahr ist
  • Verzweigungen
    • if, elif, else - auf switch und goto wurde verzichtet, da dies auch mit if realisierbar ist

In den meisten Programmiersprachen werden Blöcke durch Klammern markiert, Leerräume tragen hierbei keine Semantik und können beliebig verwendet oder weggelassen werden. Oft werden diese Leerräume zur besseren Hervorhebung von Blöcken verwendet, sie sind aber nicht vorgeschrieben.
Python geht hier einen etwas anderen Weg. Blöcke müssen nicht mit Klammern eingeleitet und abgeschlossen werden, dafür muss ein Codeblock immer eingerückt sein. Diese Einrückung kann mit einer beliebigen Tiefe erfolgen. Weiter steht es dem Programmierer frei, Tabulatoren oder Leerzeichen für die Einrückung zu verwenden. Wichtig ist, dass man sich für einen Stil entscheidet und diesen dann auch beibehält (Beispiel: immer Tabulatoren mit einer Tiefe von vier Zeichen oder immer eine Einrückung von zwei Leerzeichen).

Kommentare werden in Python mit dem Rautezeichen (#) eingeleitet und gelten bis zum Ende einer Zeile.

Datentypen

Python besitzt eine Anzahl von grundlegenden Datentypen wie Ganzzahlen, Fliesskommazahlen und sogar komplexe Zahlen. Zudem verfügt Python über Zeichenketten. Dies sind jedoch unveränderliche Objekte; bei jeder Veränderung wird eine neue Zeichenkette erstellt und die alte verworfen (analog zu Java).

In Python ist ein Datentyp an den Wert und nicht an die Variable gebunden. Das heisst, dass in Python die Datentypen dynamisch vergeben werden. Trotzdem enthält Python eine Typprüfung. So sind implizite Typumwandlungen erlaubt (man z.B. eine komplexe Zahl mit einer Ganzzahl ohne explizite Typumwandlung multiplizieren), Zeichenketten und Zahlen müssen jedoch explizit umgewandelt werden. Sämtliche Werte werden immer als Referenz übergeben, weiter ist in Python alles ein Objekt (ob einfache Ganzzahl oder Zeichenkette).

Einfache Typen

Python unterstützt die folgenden einfachen Typen:

  • bool für boolsche Werte (True oder False)
  • str und unicode für Zeichenketten (Beispiel: 'spam' für str und u'eggs' für unicode)
  • int für Ganzzahlen (Beispiel: 42)
  • float für Fliesskommazahlen (Beispiel: 3.141)
  • complex für komplexe Zahlen (Beispiel: 3+2j)

Sammeltypen

Programmiersprachen wie C und Java stellen für Sammlungen von Objekten Arrays zur Verfügung. Python geht hier einen Schritt weiter und unterstützt die folgenden Sammeltypen:
  • Listen
    • Datentyp list
    • Veränderbare Sequenz von gemischten Typen
    • Beispiel: [42, 'spam', 'eggs', 3.141, False]
  • Tupel
    • Datentyp tuple
    • Nicht veränderbare Sequenz von gemischten Typen
    • Beispiel: (35, 'dinsdale', 'beans', False)
  • Sets
    • Datentyp set und frozenset
    • Nicht sortierte Menge, die keine Duplikate enthält
    • Beispiel: set(['gone off', 'caribou', 'old horse', True, 42])
  • Wörterbücher
    • Datentyp dict
    • Eine Menge von Schlüssel- und Wertpaaren (zu vergleichen mit assoziativen Arrays in PHP)
    • Beispiel: {'first': 'John Cleese', 'second': 'Graham Chapman', 'third': 'Michael Palin'}

Zwar gibt es in andere Programmiersprachen auch Klassen, die eine ähnliche Funktionalität bieten (in Java gibt es z.B. die ArrayList für Listen), Python bietet diese Funktionalität jedoch im Sprachkern, während man sich in Java beispielsweise des Packages java.util bedienen muss.

Objektorientierte Programmierung

Wie bereits erwähnt, unterstützt Python die objektorientierte Programmierung. Jedes Element in Python ist ein Objekt (sogar Klassen, die sog. Metaobjekte darstellen). Weiter unterstützt Python auch den Polymorphismus und sogar Mehrfachvererbung. Zwar kann man in Python private Variablen definieren (mit zwei führenden Underscores), in der Praxis verstecken Python-Programmierer ihre Eigenschaften nicht. Somit werden Eigenschaften von Klassen nicht über Getter- und Setter-Methoden herausgelesen und manipuliert, sondern direkt. Python verwendet also keine Kapselung im traditionellen Sinn.

Die Standardbibliothek

Python verfügt über eine mächtige Standardbibliothek. Diese Standardbibliothek kann durch eigene Module ergänzt werden, die in Python oder C geschrieben sind. Python's Standardbibliothek ist vor allem auf das Internet zugeschnitten, so werden beispielsweise Protkolle wie HTTP und FTP von Haus aus unterstützt. Zudem gibt es Module für die Handhabung von regulären Ausdrücken sowie Module für den Datenbankzugriff.

Python verfügt über das Modul Tkinter (Abkürzung für Tk-Interface) zur Erstellung von Benutzeroberflächen. Tkinter verfügt jedoch nur über ein paar grundlegende Widgets und integriert sich optisch nicht sonderlich gut in das Betriebssystem. Neben Tkinter existieren aber noch zahlreiche weitere APIs für die Erstellung von Benutzeroberflächen in Python wie z.B. PyGTK, PyQT oder WxPython.

Die meisten Module von Python's Standardbibliothek existieren für sämtliche unterstützten Plattformen, sodass Python-Programme in der Regel ohne Änderungen auf verschiedenen Plattformen ausführbar sind.

Links

Quellen

  • deutschsprachiges Wikipedia: Python
  • englischsprachiges Wikipedia: Python


[back to top]



Userdaten
User nicht eingeloggt

Gesamtranking
Werbung
Datenbankstand
Autoren:04508
Artikel:00815
Glossar:04116
News:13565
Userbeiträge:16552
Queueeinträge:06246
News Umfrage
Ihre Anforderungen an ein Online-Zeiterfassungs-Produkt?
Mobile Nutzung möglich (Ipone, Android)
Externe API Schnittstelle/Plugins dritter
Zeiterfassung meiner Mitarbeiter
Exportieren in CSV/XLS
Siehe Kommentar



[Results] | [Archiv] Votes: 1154
Comments: 0