Wikipedia · einfach zusammengefasst · Stand
Python (Programmiersprache)
Python ([ˈpʰaɪθn̩], [ ˈpʰaɪθɑn], auf Deutsch auch [ ˈpʰyːtɔn]) ist eine universell nutzbare, üblicherweise interpretierte, höhere Programmiersprache.
Inhalt6 Abschnitte
Grundidee und Bedeutung
Python ist eine universell nutzbare, meist interpretierte höhere Programmiersprache. Sie erschien am 20. Februar 1991, wurde von Guido van Rossum entworfen und wird heute durch die Python Software Foundation und die Referenzimplementierung CPython geprägt. Die aktuelle Version wird im Artikel mit 3.14.7 vom 5. August 2026 angegeben. Python ist plattformunabhängig, steht unter der Python Software Foundation License und nutzt eine starke, dynamische Typisierung nach dem Prinzip „Duck-Typing“: Entscheidend ist, welche Operationen ein Objekt unterstützt, nicht zuerst eine fest deklarierte Variablenart.
Wichtig ist Python vor allem, weil die Sprache leicht lesbaren und knappen Quellcode fördern soll. Blöcke werden nicht durch geschweifte Klammern, sondern durch Einrückungen markiert. Python unterstützt mehrere Programmierparadigmen, also verschiedene Arten, Programme zu strukturieren: objektorientierte, prozedurale beziehungsweise imperative, funktionale, strukturierte und reflektierte Programmierung. Häufig wird Python als Skriptsprache eingesetzt, kann aber auch für größere Anwendungen, wissenschaftliches Rechnen, Webentwicklung, grafische Oberflächen und als Erweiterungssprache in anderen Programmen dienen.
Entwicklung und Versionen
Python entstand Anfang der 1990er Jahre am Centrum Wiskunde & Informatica in Amsterdam als Nachfolger der Lehrsprache ABC und war ursprünglich für das verteilte Betriebssystem Amoeba gedacht. Die erste Vollversion Python 1.0 erschien im Januar 1994. Python 2.0 wurde am 16. Oktober 2000 veröffentlicht und brachte unter anderem eine voll funktionsfähige Garbage Collection, also automatische Speicherbereinigung, sowie Unterstützung für den Unicode-Zeichensatz.
Python 3.0 erschien am 3. Dezember 2008. Diese Version entfernte Redundanzen und veraltete Konstrukte, war dadurch aber teilweise nicht mit älteren Versionen kompatibel. Deshalb wurde Python 2.7 zunächst parallel zu Python 3 weiter unterstützt. Die Unterstützung für Python 2 ist inzwischen beendet; die letzte 2er-Version war 2.7.18 vom 20. April 2020. Seit diesem Datum wird Python 2 nicht mehr unterstützt. Für den Umstieg auf Python 3 gibt es Dokumentationen und Werkzeuge, die Migration erleichtern oder Code ermöglichen, der mit Python 2 und 3 funktioniert.
Die Versionstabelle im Artikel nennt viele ältere Versionen als nicht mehr unterstützt. Als noch unterstützte ältere Versionen werden 3.10, 3.11 und 3.12 aufgeführt; als aktuelle Versionen 3.13 und 3.14; als Vorabversionen 3.15 und 3.16. Die Daten in der Tabelle reichen bis zu geplanten Support-Enden wie Oktober 2032 für Python 3.16.
Ziele und Sprachprinzipien
Python wurde mit dem Ziel größter Einfachheit und Übersichtlichkeit entworfen. Dazu verwendet die Sprache relativ wenige Schlüsselwörter und eine reduzierte, auf Lesbarkeit ausgerichtete Syntax. Python-Programme können dadurch oft kürzer formuliert werden als Programme in anderen Sprachen.
Ein weiteres Ziel war eine überschaubare und leicht erweiterbare Standardbibliothek. Python kann Module aufrufen, die in anderen Programmiersprachen geschrieben wurden, zum Beispiel C-Routinen für zeitkritische Programmteile. Umgekehrt kann Python als Sprache für Module und Plug-ins in Programmen dienen, die das unterstützen, etwa Blender, Cinema 4D, GIMP, Maya, Nuke, OpenOffice beziehungsweise LibreOffice, PyMOL, SPSS, QGIS oder KiCad.
Python ist eine Multiparadigmensprache: Programmierende müssen sich nicht auf einen einzigen Stil festlegen. Objektorientierte und strukturierte Programmierung werden vollständig unterstützt, funktionale und aspektorientierte Programmierung durch einzelne Sprachelemente. Nicht mehr benutzter Speicher wird durch Referenzzählung freigegeben. Datentypen werden dynamisch verwaltet; eine automatische statische Typprüfung wie bei C++ gibt es nicht. Seit Python 3.5 unterstützt Python aber optionale Typ-Annotationen, die externe statische Prüfprogramme wie Mypy nutzen können.
Datentypen, Objekte und Syntax
Python besitzt grundlegende Datentypen für normale Arithmetik, beliebig große Ganzzahlen und komplexe Zahlen. Zeichenketten sind unveränderliche Objekte: Operationen wie das Ersetzen von Zeichen erzeugen eine neue Zeichenkette statt die alte zu verändern. In Python ist alles ein Objekt, auch Klassen, Typen, Methoden und Module. Der Datentyp ist an den Wert gebunden, nicht an die Variable.
Zu den Sammeltypen gehören Listen, Tupel, Mengen und Dictionaries. Listen sind veränderbare Folgen, Tupel und Zeichenketten haben eine feste Länge und sind unveränderlich. Dictionaries sind assoziative Arrays: Sie speichern Werte unter Schlüsseln. Damit die Datenkonsistenz gewahrt bleibt, müssen Dictionary-Schlüssel unveränderlich sein; die gespeicherten Werte können beliebige Typen haben. Sets sind Mengen paarweise unterschiedlicher Objekte und bieten Mengenoperationen wie Durchschnitt, Differenz und Vereinigung.
Das Objektsystem ist eng mit dem Typsystem verbunden. Klassen können von Typen erben, sodass sich Eigenschaften etwa von Zeichenketten, Wörterbüchern oder Ganzzahlen erweitern lassen. Python unterstützt Mehrfachvererbung. Typen können ausgelesen und verglichen werden und verhalten sich selbst wie Objekte; Attribute eines Objekts können als Wörterbuch extrahiert werden.
Die Syntax setzt auf Lesbarkeit. Statt Symbolen wie || verwendet Python häufig englische Schlüsselwörter wie or. Für Schleifen gibt es for … else und while … else; für Bedingungen if … elif … else und match … case … if; für Fehler try … except … else … finally; und mit with lassen sich Blöcke mit Kontext-Managern ausführen. Eine Besonderheit ist, dass for- und while-Schleifen einen else-Zweig haben können, der nur ausgeführt wird, wenn die Schleife nicht durch break, return oder eine Ausnahme abgebrochen wurde. Die Struktur von Codeblöcken wird durch Einrücken bestimmt. Gemischte Leerzeichen und Tabulatoren können Probleme verursachen; das Modul tabnanny kann solche Mischungen erkennen und beheben.
Programmiertechniken und Bibliotheken
Python unterstützt funktionale Programmierung unter anderem durch Listennotation, Funktionen als Argumente, Closures und lambda-Ausdrücke. Listennotation erlaubt kompakte Ausdrücke wie die Berechnung von Zweierpotenzen aus einer Liste von Zahlen. lambda-Blöcke können in Python nur Ausdrücke enthalten, keine Anweisungen; häufig wird daher eine lokale Funktion definiert und zurückgegeben. Auch Currying, also das Ableiten speziellerer Funktionen aus allgemeineren Funktionen, ist möglich.
Ausnahmebehandlung ist in Python stark integriert. Eine Ausnahme ist ein Mechanismus, um Fehlerbedingungen geordnet zu behandeln. Ausnahmen gelten als threadsicher, können an höhere Programmebenen weitergereicht und an verschiedenen Stellen der Aufrufkette behandelt werden. Der Artikel zeigt als typischen Fall eine Eingabeaufforderung, die mit try und except ValueError so lange nach einer ganzen Zahl fragt, bis int() die Eingabe umwandeln kann. Auch KeyboardInterrupt, etwa durch Strg+C, kann abgefangen werden.
Die Standardbibliothek gilt als eine der größten Stärken von Python. Sie ist zu großen Teilen plattformunabhängig, sodass größere Programme oft auf Unix, Windows, macOS und anderen Plattformen ohne Änderung laufen. Sie unterstützt viele Standardformate und Protokolle wie MIME und HTTP, enthält Module für grafische Benutzeroberflächen, relationale Datenbanken und reguläre Ausdrücke und kann durch Module in C oder Python erweitert werden.
Für grafische Benutzeroberflächen bringt Python Tkinter mit, das auf Tk aufsetzt. Weitere Anbindungen gibt es etwa für PyGTK, PyQt, wxPython, PyObjC und PyFLTK. Außerdem enthält Python ein Modul für Turtle-Grafiken. Als Beispiel für kompakten Python-Code nennt der Artikel Quicksort mit Listennotation; zugleich wird erwähnt, dass eine iterative Formulierung dort schneller sein kann, weil sie pro Durchgang nur einmal über die Liste läuft statt zweimal.
Nutzung, Werkzeuge und Kritik
Python kann interaktiv genutzt werden: Im Interpreter lassen sich Ausdrücke direkt eingeben und Ergebnisse sofort betrachten. Das hilft beim Lernen und beim Testen kleiner Code-Stücke. IPython ist eine verbreitete interaktive Python-Shell mit erweiterter Funktionalität.
Die wichtigste Implementierung ist CPython, die offizielle Referenzimplementierung. Weitere Implementierungen und Werkzeuge sind Jython für die Java-Laufzeitumgebung, IronPython für .NET beziehungsweise Mono, Cython zur Übersetzung in effiziente C-Erweiterungen und zur Anbindung von C oder C++, PyPy als Just-in-time-Compiler, Pyston mit Just-in-time-Compilierung sowie MicroPython für Mikrocontroller. Für die Entwicklung gibt es IDLE, IDEs wie Eric Python IDE, Spyder und PyCharm, Plug-ins für Eclipse, Visual Studio, IntelliJ IDEA und NetBeans sowie anpassbare Editoren wie Vim und Emacs. Pakete werden über PyPI bereitgestellt und meist mit pip installiert; bei Anaconda verwaltet conda Paketversionen.
Python ist auf vielen Betriebssystemen verfügbar und bei den meisten Linux-Distributionen enthalten. Für Webserver wird WSGI als Schnittstelle zwischen Webserver und Python-Framework genutzt. Web-Frameworks sind unter anderem Django, Pylons, SQLAlchemy, TurboGears, web2py, Flask und Zope. Kommerziell wird Python unter anderem in Teilen von Google Suche und YouTube sowie in Spielen wie EVE Online, World in Conflict und Civilization IV eingesetzt. In der Lehre wird Python wegen des einfachen Einstiegs und seiner Leistungsfähigkeit verwendet, auch auf Plattformen wie Raspberry Pi. In der Wissenschaft ist Python wegen vieler Bibliotheken verbreitet, oft in Jupyter Notebooks; genannt werden NumPy, Matplotlib, Anaconda, SciPy, TensorFlow, Keras, Scikit-learn und PyTorch.
Kritisiert wird unter anderem, dass bei Methodendefinitionen self ausdrücklich angegeben werden muss. Andrew Kuchling nennt das unelegant; Guido van Rossum hält es für nötig, unter anderem im Sinne des Grundsatzes „Explicit is better than implicit“. Ein früherer Kritikpunkt zum expliziten Aufruf von Basisklassenmethoden wurde in Python 3.0 behoben. In CPython kann der Global Interpreter Lock die Effizienz von Multithreading auf Multiprozessor-Systemen begrenzen; in Jython und IronPython besteht diese Beschränkung nicht. Ab Version 3.13 kann der GIL mithilfe eines Flags deaktiviert werden. Außerdem ist Python in verbreiteten Implementierungen langsamer als viele kompilierbare Sprachen; bei Bedarf werden PyPy, C oder Cython genutzt.
Lernvideos zu Python (Programmiersprache)
12:40
PYTHON LERNEN in 10 Minuten (Anfänger Tutorial Deutsch)
Programmieren lernen · 277.192 Aufrufe
31:33
Data augmentation to address overfitting | Deep Learning Tutorial 26 (Tensorflow, Keras & Python)
codebasics · 184.284 Aufrufe
8:50
Python Tutorial deutsch [13/24] - Die while Schleife
Programmieren Starten · 138.531 Aufrufe
7:48
So würde ich 2026 Python lernen (schnellster Weg)
Fabian Rappert | Data Science Institute · 37.810 Aufrufe