www.wikidata.de-de.nina.az
Python ˈpʰaɪ8n ˈpʰaɪ8ɑn auf Deutsch auch ˈpʰyːtɔn ist eine universelle ublicherweise interpretierte hohere Programmiersprache 13 Sie hat den Anspruch einen gut lesbaren knappen Programmierstil zu fordern 14 So werden beispielsweise Blocke nicht durch geschweifte Klammern sondern durch Einruckungen strukturiert PythonLogo der Programmiersprache PythonBasisdatenParadigmen multiparadigmatisch objektorientiert prozedural imperativ funktional strukturiert reflektiertErscheinungsjahr 20 Februar 1991 1 Designer Guido van Rossum 2 Entwickler Python Software Foundation Guido van Rossum 1 Aktuelle Version 3 12 0 3 4 5 2 Oktober 2023 Typisierung stark dynamisch Duck Typing Wichtige Implementierungen CPython Jython IronPython PyPyBeeinflusst von Algol 68 6 ABC 7 Modula 3 8 C 9 C 8 Perl Java Lisp Haskell 10 APL CLU Dylan ICON Standard MLBeeinflusste Ruby CythonBetriebssystem Plattformunabhangig 11 Lizenz Python Software Foundation License 12 www python orgPython unterstutzt mehrere Programmierparadigmen z B die objektorientierte die aspektorientierte und die funktionale Programmierung Ferner bietet es eine dynamische Typisierung Wie viele dynamische Sprachen wird Python oft als Skriptsprache genutzt Die Sprache weist ein offenes gemeinschaftsbasiertes Entwicklungsmodell auf das durch die gemeinnutzige Python Software Foundation gestutzt wird die die Definition der Sprache in der Referenzumsetzung CPython pflegt Inhaltsverzeichnis 1 Entwicklungsgeschichte 2 Versionen 3 Ziele 4 Datentypen und Strukturen 4 1 Sammeltypen 4 2 Objektsystem 5 Syntax 5 1 Strukturierung durch Einrucken 5 2 Funktionales Programmieren 5 3 Ausnahmebehandlung 6 Standardbibliothek 7 Grafische Benutzeroberflachen GUI 7 1 Beispiel zum Tkinter Modul 7 2 Beispiel zum Turtle Grafik Modul 7 2 1 Weitere Grafiken 8 Beispiel 9 Interaktive Benutzung 10 Implementierungen 11 Entwicklungsumgebung 12 Paketverwaltung 13 Verbreitung und Einsatz 13 1 Kommerzieller Einsatz 13 2 In der Lehre 13 3 In der Wissenschaft 14 Ende von Python 2 15 Kritik 16 Literatur 17 Weblinks 17 1 Tutorials 17 1 1 Fur Anfanger 17 1 2 Fur Fortgeschrittene 17 1 3 Fur Kinder 18 EinzelnachweiseEntwicklungsgeschichte Bearbeiten nbsp Guido van Rossum der Entwickler von PythonDie Sprache wurde Anfang der 1990er Jahre von Guido van Rossum am Centrum Wiskunde amp Informatica in Amsterdam als Nachfolger fur die Programmier Lehrsprache ABC entwickelt und war ursprunglich fur das verteilte Betriebssystem Amoeba gedacht Der Name geht nicht wie das Logo vermuten lasst auf die gleichnamige Schlangengattung Python zuruck sondern bezog sich ursprunglich auf die englische Komikergruppe Monty Python In der Dokumentation finden sich daher auch einige Anspielungen auf Sketche aus dem Flying Circus 15 Trotzdem etablierte sich die Assoziation zur Schlange was sich unter anderem in der Programmiersprache Cobra 16 sowie dem Python Toolkit Boa 17 aussert Die erste Vollversion erschien im Januar 1994 unter der Bezeichnung Python 1 0 Gegenuber fruheren Versionen wurden einige Konzepte der funktionalen Programmierung implementiert die allerdings spater wieder aufgegeben wurden 18 Von 1995 bis 2000 erschienen neue Versionen die fortlaufend als Python 1 1 1 2 etc bezeichnet wurden Python 2 0 erschien am 16 Oktober 2000 Neue Funktionen umfassten eine voll funktionsfahige Garbage Collection automatische Speicherbereinigung und die Unterstutzung fur den Unicode Zeichensatz 19 In Version 2 6 wurde eine Hilfe eingebaut mit der angezeigt werden kann welche Code Sequenzen vom Nachfolger Python 3 nicht mehr unterstutzt werden und daher in darauf aufbauenden Versionen nicht mehr lauffahig sind 20 Python 3 0 auch Python 3000 erschien am 3 Dezember 2008 nach langerer Entwicklungszeit Es beinhaltet einige tiefgreifende Anderungen an der Sprache etwa das Entfernen von Redundanzen bei Befehlssatzen und veralteten Konstrukten Da Python 3 0 hierdurch teilweise inkompatibel zu fruheren Versionen ist 21 beschloss die Python Software Foundation Python 2 7 parallel zu Python 3 bis Ende 2019 weiter mit neuen Versionen zu unterstutzen fur Hinweise zur letzten 2er Versionen dem Support Ende und Hilfe zur Migration siehe Abschnitt Ende von Python 2 Versionen BearbeitenVersion Patchversion Veroffentlichung Ende des vollen Supports Ende der SicherheitskorrekturenAltere Version nicht mehr unterstutzt 0 9 0 9 9 22 20 Feb 1991 29 Juli 1993Altere Version nicht mehr unterstutzt 1 0 1 0 4 22 26 Jan 1994 15 Feb 1994Altere Version nicht mehr unterstutzt 1 1 1 1 1 22 11 Okt 1994 10 Nov 1994Altere Version nicht mehr unterstutzt 1 2 13 Apr 1995 22 UnsupportedAltere Version nicht mehr unterstutzt 1 3 13 Okt 1995 22 UnsupportedAltere Version nicht mehr unterstutzt 1 4 25 Okt 1996 22 UnsupportedAltere Version nicht mehr unterstutzt 1 5 1 5 2 23 3 Jan 1998 13 Apr 1999Altere Version nicht mehr unterstutzt 1 6 1 6 1 23 5 Sep 2000 24 Sep 2000Altere Version nicht mehr unterstutzt 2 0 2 0 1 25 16 Okt 2000 26 22 Juni 2001Altere Version nicht mehr unterstutzt 2 1 2 1 3 25 15 Apr 2001 27 9 Apr 2002Altere Version nicht mehr unterstutzt 2 2 2 2 3 25 21 Dez 2001 28 30 Mai 2003Altere Version nicht mehr unterstutzt 2 3 2 3 7 25 29 Juni 2003 29 11 Marz 2008Altere Version nicht mehr unterstutzt 2 4 2 4 6 25 30 Nov 2004 30 19 Dez 2008Altere Version nicht mehr unterstutzt 2 5 2 5 6 25 19 Sep 2006 31 26 Mai 2011Altere Version nicht mehr unterstutzt 2 6 2 6 9 32 1 Okt 2008 24 Aug 2010 29 Okt 2013Altere Version nicht mehr unterstutzt 2 7 2 7 18 33 3 Juli 2010 1 Jan 2020 1 Jan 2020Altere Version nicht mehr unterstutzt 3 0 3 0 1 25 32 34 3 Dez 2008 27 Juni 2009 27 Juni 2009Altere Version nicht mehr unterstutzt 3 1 3 1 5 35 27 Juni 2009 12 Juni 2011 6 Apr 2012Altere Version nicht mehr unterstutzt 3 2 3 2 6 36 20 Feb 2011 13 Mai 2013 20 Feb 2016Altere Version nicht mehr unterstutzt 3 3 3 3 7 37 29 Sep 2012 8 Marz 2014 29 Sep 2017Altere Version nicht mehr unterstutzt 3 4 3 4 10 38 16 Marz 2014 9 Aug 2017 18 Marz 2019Altere Version nicht mehr unterstutzt 3 5 3 5 10 39 13 Sep 2015 8 Aug 2017 30 Sep 2020Altere Version nicht mehr unterstutzt 3 6 3 6 15 40 23 Dez 2016 24 Dez 2018 23 Dez 2021Altere Version nicht mehr unterstutzt 3 7 3 7 16 41 27 Juni 2018 27 Juni 2020 27 Juni 2023Altere Version noch unterstutzt 3 8 3 8 16 42 14 Okt 2019 3 Mai 2021 Okt 2024Altere Version noch unterstutzt 3 9 3 9 16 43 5 Okt 2020 17 Mai 2022 Okt 2025Altere Version noch unterstutzt 3 10 3 10 9 44 4 Okt 2021 Mai 2023 Okt 2026Altere Version noch unterstutzt 3 11 3 11 1 45 24 Okt 2022 Mai 2024 Okt 2027Aktuelle Version 3 12 46 2 Okt 2023 Mai 2025 Okt 2028Legende Altere Version nicht mehr unterstutzt Altere Version noch unterstutzt Aktuelle Version Aktuelle Vorabversion Zukunftige VersionZiele BearbeitenPython wurde mit dem Ziel grosster Einfachheit und Ubersichtlichkeit entworfen Dies wird vor allem durch zwei Massnahmen erreicht Zum einen kommt die Sprache mit relativ wenigen Schlusselwortern aus 47 Zum anderen ist die Syntax reduziert und auf Ubersichtlichkeit optimiert Dadurch lassen sich Python basierte Skripte deutlich knapper formulieren als in anderen Sprachen 48 Van Rossum legte bei der Entwicklung grossen Wert auf eine Standardbibliothek die uberschaubar und leicht erweiterbar ist Dies war Ergebnis seiner schlechten Erfahrung mit der Sprache ABC in der das Gegenteil der Fall ist 49 Dieses Konzept ermoglicht in Python Module aufzurufen die in anderen Programmiersprachen geschrieben wurden etwa um Schwachen von Python auszugleichen Beispielsweise konnen fur zeitkritische Teile in maschinennaheren Sprachen wie C implementierte Routinen aufgerufen werden 50 Umgekehrt lassen sich mit Python Module und Plug ins fur andere Programme schreiben die die entsprechende Unterstutzung bieten Dies ist unter anderem bei Blender Cinema 4D GIMP Maya OpenOffice bzw LibreOffice PyMOL SPSS QGIS oder KiCad der Fall Python ist eine Multiparadigmensprache Das bedeutet Python zwingt den Programmierer nicht zu einem einzigen Programmierstil sondern erlaubt das fur die jeweilige Aufgabe am besten geeignete Paradigma zu wahlen Objektorientierte und strukturierte Programmierung werden vollstandig unterstutzt funktionale und aspektorientierte Programmierung werden durch einzelne Elemente der Sprache unterstutzt Die Freigabe nicht mehr benutzter Speicherbereiche erfolgt durch Referenzzahlung Datentypen werden dynamisch verwaltet eine automatische statische Typprufung wie z B bei C gibt es nicht Jedoch unterstutzt Python ab Version 3 5 optionale Typ Annotationen um eine statische Typprufung mithilfe externer Software wie zum Beispiel Mypy zu vereinfachen 51 52 Datentypen und Strukturen Bearbeiten nbsp Datentypen und StrukturenPython besitzt eine grossere Anzahl von grundlegenden Datentypen Neben der herkommlichen Arithmetik unterstutzt es transparent auch beliebig grosse Ganzzahlen und komplexe Zahlen Die ublichen Zeichenkettenoperationen werden unterstutzt Zeichenketten sind in Python allerdings unveranderliche Objekte wie auch in Java Daher geben Operationen die eine Zeichenkette verandern sollen wie z B durch Ersetzen von Zeichen immer eine neue Zeichenkette zuruck In Python ist alles ein Objekt Klassen Typen Methoden Module etc Der Datentyp ist jeweils an das Objekt den Wert gebunden und nicht an eine Variable d h Datentypen werden dynamisch vergeben so wie bei Smalltalk oder Lisp und nicht wie bei Java Trotz der dynamischen Typverwaltung enthalt Python eine gewisse Typprufung Diese ist strenger als bei Perl aber weniger strikt als etwa bei Objective CAML Implizite Umwandlungen nach dem Duck Typing Prinzip sind unter anderem fur numerische Typen definiert so dass man beispielsweise eine komplexe Zahl mit einer langen Ganzzahl ohne explizite Typumwandlung multiplizieren kann Mit dem Format Operator gibt es eine implizite Umwandlung eines Objekts in eine Zeichenkette Der Operator uberpruft zwei Objekte auf Wert Gleichheit Der Operator is uberpruft die tatsachliche Identitat zweier Objekte 53 Sammeltypen Bearbeiten Python besitzt mehrere Sammeltypen darunter Listen Tupel Mengen Sets und assoziative Arrays Dictionaries Listen Tupel und Zeichenketten sind Folgen Sequenzen Felder und kennen fast alle die gleichen Methoden Uber die Zeichen einer Kette kann man ebenso iterieren wie uber die Elemente einer Liste Ausserdem gibt es die unveranderlichen Objekte die nach ihrer Erzeugung nicht mehr geandert werden konnen Listen sind z B erweiterbare Felder wohingegen Tupel und Zeichenketten eine feste Lange haben und unveranderlich sind Der Zweck solcher Unveranderlichkeit hangt z B mit den Dictionaries zusammen einem Datentyp der auch als assoziatives Array bezeichnet wird Um die Datenkonsistenz zu sichern mussen die Schlussel eines Dictionary vom Typ unveranderlich sein Die ins Dictionary eingetragenen Werte konnen dagegen von beliebigem Typ sein Sets sind Mengen von Objekten und in CPython ab Version 2 4 im Standardsprachumfang enthalten Diese Datenstruktur kann beliebige paarweise unterschiedliche Objekte aufnehmen und stellt Mengenoperationen wie beispielsweise Durchschnitt Differenz und Vereinigung zur Verfugung Objektsystem Bearbeiten Das Typsystem von Python ist auf das Klassensystem abgestimmt Obwohl die eingebauten Datentypen genau genommen keine Klassen sind konnen Klassen von einem Typ erben So kann man die Eigenschaften von Zeichenketten oder Worterbuchern erweitern auch von Ganzzahlen Python unterstutzt Mehrfachvererbung Die Sprache unterstutzt direkt den Umgang mit Typen und Klassen Typen konnen ausgelesen ermittelt und verglichen werden und verhalten sich wie Objekte tatsachlich sind die Typen wie in Smalltalk selbst ein Objekt Die Attribute eines Objektes konnen als Worterbuch extrahiert werden Syntax BearbeitenEines der Entwurfsziele fur Python war die gute Lesbarkeit des Quellcodes Die Anweisungen benutzen haufig englische Schlusselworter wo andere Sprachen Symbole einsetzen z B or statt Fur strukturierte Programmierung besitzt Python die folgenden Elemente Schleifen wiederholte Ausfuhrung for else zur Iteration uber die Elemente einer Sequenz while else zur Wiederholung solange ein Ausdruck den Boolean Wert True hat Verzweigungen bedingte Ausfuhrung if elif else fur bedingte Verzweigungen match case if fur strukturiertes Pattern Matching Exceptions Ausfuhrung im Fehlerfall try except else finally fur Ausnahmebehandlungen with zum Ausfuhren eines Blocks mit einem Kontext ManagerIm Gegensatz zu vielen anderen Sprachen konnen for und while Schleifen einen else Zweig haben Dieser wird nur ausgefuhrt wenn die Schleife vollstandig durchlaufen und nicht mittels break return oder eines Ausnahmefehlers abgebrochen wurde Strukturierung durch Einrucken Bearbeiten Python benutzt wie Miranda und Haskell Einruckungen als Strukturierungselement Diese Idee wurde erstmals von Peter J Landin vorgeschlagen und von ihm off side rule Abseitsregel genannt In den meisten anderen Programmiersprachen werden Blocke durch Klammern oder Schlusselworter markiert wahrend unterschiedlich grosse Leerraume ausserhalb von Zeichenketten keine spezielle Semantik tragen Bei diesen Sprachen ist die Einruckung zur optischen Hervorhebung eines Blockes zwar erlaubt und in der Regel auch erwunscht aber nicht vorgeschrieben Fur Programmierneulinge wird der Zwang zu lesbarem Stil aber als Vorteil gesehen Hierzu als Beispiel die Berechnung der Fakultat einer Ganzzahl einmal in C und einmal in Python Fakultatsfunktion in C int factorial int x if x lt 1 return 1 return x factorial x 1 Die gleiche Funktion in Python def factorial x if x lt 1 return 1 return x factorial x 1 Es ist jedoch darauf zu achten die Einruckungen im gesamten Programmtext gleich zu gestalten Die gemischte Verwendung von Leerzeichen und Tabulatorzeichen kann zu Problemen fuhren da der Python Interpreter Tabulatoren im Abstand von acht Leerzeichen annimmt Je nach Konfiguration des Editors konnen Tabulatoren optisch mit weniger als acht Leerzeichen dargestellt werden was zu Syntaxfehlern oder ungewollter Programmstrukturierung fuhren kann Als vorbeugende Massnahme kann man den Editor Tabulatorzeichen durch eine feste Anzahl von Leerzeichen ersetzen lassen Die Python Distribution enthalt in der Standardbibliothek das Modul tabnanny welches die Vermischung von Tabulator und Leerzeichen zu erkennen und beheben hilft Man kann die Fakultatsfunktion aber auch wie in C einzeilig mit ternarem Operator formulieren Die Fakultatsfunktion in C int factorial int x return x lt 1 1 x factorial x 1 Die Fakultatsfunktion in Python def factorial x return 1 if x lt 1 else x factorial x 1 Funktionales Programmieren Bearbeiten Coconut 54 und andere Erweiterungen erleichtern das funktionale Programmieren in Python Daruber hinaus lasst sich dies auch mit dem herkommlichen Python realisieren Ausdrucksstarke syntaktische Elemente zur funktionalen Programmierung vereinfachen das Arbeiten mit Listen und anderen Sammeltypen Eine solche Vereinfachung ist die Listennotation die aus der funktionalen Programmiersprache Haskell stammt hier bei der Berechnung der ersten funf Zweierpotenzen zahlen 1 2 3 4 5 zweierpotenzen 2 n for n in zahlen Weil in Python Funktionen als Argumente auftreten durfen kann man auch ausgeklugeltere Konstruktionen ausdrucken wie den Continuation Passing Style Pythons Schlusselwort lambda konnte manche Anhanger der funktionalen Programmierung fehlleiten Solche lambda Blocke in Python konnen nur Ausdrucke enthalten aber keine Anweisungen Damit werden solche Anweisungen generell nicht verwendet um eine Funktion zuruckzugeben Die ubliche Vorgehensweise ist stattdessen den Namen einer lokalen Funktion zuruckzugeben Das folgende Beispiel zeigt dies anhand einer einfachen Funktion nach den Ideen von Haskell Brooks Curry def add and print maker x def temp y print f x y x y return temp Damit ist auch Currying auf einfache Art moglich um generische Funktionsobjekte auf problemspezifische herunterzubrechen Hier ein einfaches Beispiel def curry func known argument return lambda unknown argument func unknown argument known argument Wird die curry Funktion aufgerufen erwartet diese eine Funktion mit zwei notwendigen Parametern sowie die Parameterbelegung fur den zweiten Parameter dieser Funktion Der Ruckgabewert von curry ist eine Funktion die das Gleiche tut wie func aber nur noch einen Parameter benotigt Closures sind mit den o g Mechanismen in Python ebenfalls einfach moglich Ein simples Beispiel fur einen Stack intern durch eine Liste reprasentiert def stack l def pop if not is empty return l pop def push element l append element def is empty return len l 0 return pop push is empty pop push is empty stack Auf diese Weise erhalt man die drei Funktionsobjekte pop push is empty um den Stack zu modifizieren bzw auf enthaltene Elemente zu prufen ohne dabei auf l direkt zuzugreifen Ausnahmebehandlung Bearbeiten Python nutzt ausgiebig die Ausnahmebehandlung englisch exception handling als ein Mittel um Fehlerbedingungen zu testen Dies ist so weit in Python integriert dass es teilweise sogar moglich ist Syntaxfehler abzufangen und zur Laufzeit zu behandeln Ausnahmen haben einige Vorteile gegenuber anderen beim Programmieren ublichen Verfahren der Fehlerbehandlung wie z B Fehler Ruckgabewerte und globale Statusvariablen Sie sind Thread sicher und konnen leicht bis in die hochste Programmebene weitergegeben oder an einer beliebigen anderen Ebene der Funktionsaufruffolge behandelt werden Der korrekte Einsatz von Ausnahmebehandlungen beim Zugriff auf dynamische Ressourcen erleichtert es zudem bestimmte auf Race Conditions basierende Sicherheitslucken zu vermeiden die entstehen konnen wenn Zugriffe auf bereits veralteten Statusabfragen basieren Der Python Ansatz legt den Einsatz von Ausnahmen nahe wann immer eine Fehlerbedingung entstehen konnte Nutzlich ist dieses Prinzip beispielsweise bei der Konstruktion robuster Eingabeaufforderungen while True num input Eine ganze Zahl eingeben try num int num except ValueError print Eine Zahl bitte else break Dieses Programmstuck fragt den Benutzer so lange nach einer Zahl bis dieser eine Zeichenfolge eingibt die sich per int in eine Ganzzahl konvertieren lasst Durch die Ausnahmebehandlung wird hier vermieden dass eine Fehleingabe zu einem Laufzeitfehler fuhrt der das Programm zum Abbruch zwingt Ebenso kann auch das hier nicht berucksichtigte Interrupt Signal SIGINT haufig Strg C mittels Ausnahmebehandlung in Python abgefangen und behandelt werden except KeyboardInterrupt Standardbibliothek BearbeitenDie machtige Standardbibliothek ist eine der grossten Starken von Python wodurch es sich fur viele Anwendungen eignet Der uberwiegende Teil davon ist plattformunabhangig so dass auch grossere Python Programme oft auf Unix Windows macOS und anderen Plattformen ohne Anderung laufen Die Module der Standardbibliothek konnen mit in C oder Python selbst geschriebenen Modulen erganzt werden Die Standardbibliothek ist besonders auf Internetanwendungen zugeschnitten mit der Unterstutzung einer grossen Anzahl von Standardformaten und protokollen wie MIME und HTTP Module zur Schaffung grafischer Benutzeroberflachen zur Verbindung mit relationalen Datenbanken und zur Manipulation regularer Ausdrucke sind ebenfalls enthalten Grafische Benutzeroberflachen GUI BearbeitenMit Hilfe des mitgelieferten Moduls Tkinter kann in Python wie in Perl und Tcl schnell eine grafische Benutzeroberflache GUI mit Tk erzeugt werden Es gibt daruber hinaus eine Vielzahl von weiteren Wrappern von anderen Anbietern Sie stellen Anbindungen englisch language bindings zu GUI Toolkits wie z B PyGTK PyQt wxPython PyObjC und PyFLTK zur Verfugung Neben Tkinter wird auch ein Modul zum Zeichnen von Turtle Grafiken mitgeliefert Beispiel zum Tkinter Modul Bearbeiten nbsp Beispiel fur ein einfaches Tkinter Fensterfrom tkinter import fenster Tk fenster geometry 200x100 label Label fenster text Hallo Welt label pack def befehl fenster destroy button Button fenster text OK command befehl button pack fenster mainloop Beispiel zum Turtle Grafik Modul Bearbeiten nbsp Ergebnis des angegebenen Quellcodesimport turtle from turtle import speed reset goto reset speed 0 turtle x 200 turtle y 200 while turtle y 200 goto turtle x turtle y turtle x turtle x turtle y turtle y goto turtle x turtle y goto 0 0 turtle y turtle y turtle x turtle x turtle y 5 Weitere Grafiken Bearbeiten nbsp Bunter Kreis nbsp Stern nbsp Die Turtle zeichnet ein QuadratBeispiel BearbeitenAls nicht triviales Beispiel sei hier der kompakte Sortieralgorithmus Quicksort angegeben def quicksort liste if len liste lt 1 return liste pivotelement liste pop links element for element in liste if element lt pivotelement rechts element for element in liste if element gt pivotelement return quicksort links pivotelement quicksort rechts Hier ermoglicht insbesondere die Listennotation fur die Variablen links und rechts eine kompakte Darstellung Zum Vergleich eine iterative Formulierung dieser zwei Zeilen links rechts leere Listen fur links und rechts anlegen pivotelement liste pop das letzte Element aus der Liste nehmen als Referenz for element in liste die restlichen Elemente der Liste durchlaufen if element lt pivotelement und mit dem Pivot Element vergleichen links append element wenn kleiner dann an linke Liste anhangen else rechts append element ansonsten wenn nicht kleiner dann an rechte Liste anhangen Dies ist nur ein Beispiel fur die gesparte Schreibarbeit durch die Listennotation Tatsachlich ist in diesem Fall die iterative Formulierung die schnellere da pro Durchgang nur einmal uber das Feld liste iteriert wird und nicht zweimal wie in der Listennotation Interaktive Benutzung BearbeitenSo wie Lisp Ruby Groovy und Perl unterstutzt der Python Interpreter auch einen interaktiven Modus in dem Ausdrucke am Terminal eingegeben und die Ergebnisse sofort betrachtet werden konnen Das ist nicht nur fur Neulinge angenehm die die Sprache lernen sondern auch fur erfahrene Programmierer Code Stuckchen konnen interaktiv ausgiebig getestet werden bevor man sie in ein geeignetes Programm aufnimmt Daruber hinaus steht mit Python Shell ein Kommandozeileninterpreter fur verschiedene unixoide Computer Betriebssysteme zur Verfugung der neben klassischen Unix Shellkommandos auch direkte Eingaben in Python Form verarbeiten kann IPython ist eine populare interaktive Python Shell mit stark erweiterter Funktionalitat Implementierungen BearbeitenInterpreterCPython ist die offizielle oder Referenzimplementierung der Programmiersprache Python und deren Interpreter Daneben gibt es einen in Java implementierten Python Interpreter namens Jython mit dem die Bibliothek der Java Laufzeitumgebung fur Python verfugbar gemacht wird CompilerAusser den oben genannten Interpretern existieren Compiler die Python Code in eine andere Programmiersprache ubersetzen Mit Cython kann Python Code in effiziente C Erweiterungen ubersetzt oder externer C oder C Code angebunden werden Ebenso existiert der Compiler IronPython fur die Net Framework bzw Mono Plattform Um Python als Skriptsprache fur Programme in C zu nutzen werden zumeist die Boost Python Bibliothek oder in neueren Projekten Cython verwendet Ein Python Parser fur Parrot und ein in Python geschriebener Just in time Compiler fur Python PyPy welcher von der EU gefordert wurde sind ebenfalls in Entwicklung Auch die Python Variante Pyston verwendet Just in time Compilierung und beschleunigt so die Ausfuhrung von Python Programmen 55 Ausserdem existiert ein Python Interpreter fur Mikrocontroller namens MicroPython 56 Entwicklungsumgebung BearbeitenNeben IDLE das oft mit Python installiert wird und hauptsachlich aus einer Textumgebung und einer Shell besteht wurden auch einige vollwertige Entwicklungsumgebungen IDEs fur Python entwickelt beispielsweise Eric Python IDE Spyder oder PyCharm Weiterhin gibt es Plug ins fur grossere IDEs wie Eclipse Visual Studio IntelliJ IDEA 57 und NetBeans Texteditoren fur Programmierer wie Vim und Emacs lassen sich auch fur Python anpassen Ein einfacher Python Mode ist bereits integriert und komfortablere Erweiterungen konnen hinzugefugt werden Fur die verschiedenen GUI Toolkits wie z B Tkinter GUI Builder WxPython wxGlade PyQt Qt Designer PySide PyGTK Glade Kivy oder PyFLTK gibt es teils eigene Editoren mit denen sich grafische Benutzeroberflachen auf vergleichsweise einfache Art aufbauen lassen Paketverwaltung BearbeitenPython unterstutzt die Erstellung von Paketen dabei helfen distutils und setuptools Die Pakete werden auf PyPI dem Python Package Index gespeichert und von dort zur Installation abgerufen Als Paketmanager wird ublicherweise pip oder auf alten Systemen auch easy install eingesetzt Paketversionen der Anaconda Python Distribution werden von der Paketverwaltung conda verwaltet 58 Verbreitung und Einsatz BearbeitenPython ist fur die meisten gangigen Betriebssysteme frei erhaltlich und bei den meisten Linux Distributionen im Standardumfang enthalten Um Python in Webserver einzubinden wird Webserver umgreifend WSGI verwendet welches die Nachteile von CGI umgeht WSGI stellt eine universelle Schnittstelle zwischen Webserver und Python Framework zur Verfugung Eine Reihe von Web Application Frameworks nutzt Python darunter Django Pylons SQLAlchemy TurboGears web2py Flask und Zope Ferner gibt es einen Python Interpreter fur das Symbian Betriebssystem so dass Python auf verschiedenen Mobiltelefonen verfugbar ist In der Version 2 5 1 ist Python ein Bestandteil von AmigaOS 4 0 Kommerzieller Einsatz Bearbeiten Bekannte kommerzielle Projekte etwa Google Suche und YouTube basieren in Teilen auf Python 59 Auch in der Spieleindustrie findet die Sprache bisweilen Einsatz etwa in EVE Online World in Conflict und Civilization IV In der Lehre Bearbeiten Python wird gern in der Lehre eingesetzt da Python auf der einen Seite einsteigerfreundlich ist auf der anderen Seite aber auch leistungsfahig und machtig genug um theoretische Grundlagen der Programmierung zu vermitteln und um moderne Anwendungen bis hin zu komplexen Datenanalysen grafischer Programmierung oder Datenbankanwendungen zu entwickeln 60 61 62 63 64 65 Lehrbucher die sich explizit an junge Menschen ohne Programmiererfahrung wenden unterstutzen und unterstreichen diese Entwicklung 66 Im Rahmen des Projektes 100 Dollar Laptop wird Python als Standardsprache der Benutzeroberflache verwendet Da der 100 Dollar Rechner fur die Schulausbildung von Kindern konzipiert ist soll bei Benutzung der dafur gestalteten grafischen Benutzeroberflache Sugar auf Knopfdruck der gerade laufende Python Quellcode angezeigt werden 67 Damit soll Kindern die Moglichkeit gegeben werden die dahinter liegende Informationstechnik real zu erleben und nach Belieben hinter die Kulissen zu schauen Der Einplatinen Computer Raspberry Pi Python Interpreter sollte ursprunglich mit einem im ROM integrierten Python Interpreter ausgeliefert werden 68 Auch heute ist Python eine der bevorzugtesten Sprachen fur den Raspberry Pi Sein Standard Betriebssystem Raspberry Pi OS kommt mit einer grossen Python Bibliothek zur Ansteuerung der Hardware Python wird weltweit in der Informatikausbildung an Schulen und Universitaten eingesetzt So stehen inzwischen eine Reihe von kostenlosen didaktisch konzipierten Online Lernplattformen zu Python fur Schule und Selbststudium ab dem 6 Schuljahr zur Verfugung meist in mehreren Sprachen Der Online Kurs Computer Science Circles z B wird von der Universitat Waterloo in Kanada bereitgestellt Die deutsche Version wird betrieben von den deutschen Bundesweiten Informatikwettbewerben 69 TigerJython gehostet von der Padagogischen Hochschule Bern wird vor allem in der Schweiz im Informatikunterricht eingesetzt 70 In der Wissenschaft Bearbeiten In der Wissenschaftsgemeinde geniesst Python grosse Verbreitung hauptsachlich wegen des einfachen Einstiegs in die Programmierung und der grossen Auswahl wissenschaftlicher Bibliotheken Oft wird Python hier innerhalb eines Jupyter Notebooks genutzt 71 Numerische Rechnungen und die visuelle Aufbereitung der Ergebnisse in Graphen werden meist mit NumPy und der Matplotlib erledigt Anaconda und SciPy bundeln viele wissenschaftliche Python Bibliotheken und machen sie somit einfacher zuganglich Mit TensorFlow Keras Scikit learn PyTorch u a gibt es grosse Bibliotheken zur Forschung und Nutzung von maschinellem Lernen und Deep Learning Kunstliche Intelligenz Ende von Python 2 BearbeitenDie Unterstutzung fur Python 2 ist beendet Die letzte 2er Version war die 2 7 18 vom 20 April 2020 72 73 seit diesem Datum wird Python 2 nicht mehr unterstutzt 74 75 Es gibt aber vielfaltige und umfangreiche Dokumentationen zum Umstieg 76 77 78 und auch Tools die bei der Migration helfen 79 oder es ermoglichen Code zu schreiben der mit Python 2 und 3 funktioniert 80 81 82 83 84 Kritik BearbeitenBei der Definition von Methoden muss der Parameter self der der Instanz entspricht deren Methode aufgerufen wird explizit als Parameter angegeben werden Dies wird von Andrew Kuchling Autor und langjahriger Python Entwickler 85 als unelegant und nicht objektorientiert empfunden 86 Python Schopfer van Rossum verweist hingegen darauf dass es notig sei um bestimmte wichtige Konstrukte zu ermoglichen 87 Einer der Python Grundsatze lautet zudem Explicit is better than implicit 88 Bis zur Version 3 0 wurde kritisiert dass in einer Methodendefinition der Aufruf der Basisklassenversion derselben Methode die explizite Angabe der Klasse und Instanz erfordert Dies wurde als Verletzung des DRY Prinzips Don t repeat yourself gesehen ausserdem behinderte es Umbenennungen In Python 3 0 wurde dieser Kritikpunkt behoben 89 Auf Multiprozessor Systemen behindert der sogenannte Global Interpreter Lock GIL von CPython die Effizienz von Python Anwendungen die softwareseitiges Multithreading benutzen Diese Beschrankung existiert unter Jython oder IronPython allerdings nicht Bislang ist von offizieller Seite nicht geplant den GIL zu ersetzen Stattdessen wird empfohlen mehrere miteinander kommunizierende Prozesse anstelle von Threads zu verwenden 90 91 In den vorherrschenden Implementationen ist die Ausfuhrungsgeschwindigkeit niedriger als bei vielen kompilierbaren Sprachen 92 aber ahnlich wie bei Perl 93 PHP 94 Dart 95 und Ruby 96 Das liegt zum Teil daran dass bei der Entwicklung von CPython der Klarheit des Codes gegenuber der Geschwindigkeit Vorrang eingeraumt wird 97 Man beruft sich dabei auf Autoritaten wie Donald Knuth und Tony Hoare die von verfruhter Optimierung abraten Wenn Geschwindigkeitsprobleme auftreten die nicht durch Optimierung des Python Codes gelost werden konnen 98 werden stattdessen JIT Compiler wie PyPy verwendet oder zeitkritische Funktionen in maschinennahere Sprachen wie C oder Cython ausgelagert Literatur BearbeitenFur den Einstieg Allen B Downey Programmieren lernen mit Python 2 Auflage O Reilly Koln u a 2014 ISBN 978 3 95561 806 3 S 297 Bernd Klein Einfuhrung in Python 3 Fur Ein und Umsteiger 2 uberarb und erw Auflage Hanser Munchen 2014 ISBN 978 3 446 44133 0 S 494 Inhaltsverzeichnis Thomas Theis Einstieg in Python Ideal fur Programmieranfanger geeignet 4 akt u erw Auflage Galileo Press Bonn 2014 ISBN 978 3 8362 2861 9 S 478 Inhaltsverzeichnis Mark Lutz Learning Python 5 Auflage O Reilly Sebastopol u a 2013 ISBN 978 1 4493 5573 9 S 1540 Inhaltsverzeichnis PDF Hans Petter Langtangen A Primer on Scientific Programming with Python 4 Auflage Springer 2014 ISBN 978 3 642 54958 8 Mark Pilgrim Florian Wollenschein Python 3 Intensivkurs 1 Auflage Springer 2010 ISBN 978 3 642 04376 5 Deutsche Ubersetzung von Dive Into Python 3 google books Mark Pilgrim Dive Into Python 3 2 Auflage Springer 2009 ISBN 1 4302 2415 0 Download verfugbar John Paul Mueller Python programmieren lernen fur Dummies 1 Auflage Wiley Weinheim 2015 ISBN 978 3 527 71148 2 S 379 bei der Deutschen Nationalbibliothek Martina Glode Hrsg Programmieren supereasy Einfacher Einstieg in Scratch und Python Dorling Kindersley Munchen 2015 ISBN 978 3 8310 2700 2 S 224 Warren D Sande Carter Sande Hello World Programmieren fur Kids und andere Anfanger 2 akt u erw Auflage Hanser Munchen 2014 ISBN 978 3 446 43806 4 S 475 Michael Bonacina Python 3 Programmieren fur Einsteiger Der leichte Weg zum Python Experten 2 Auflage BMU Verlag Landshut 2019 ISBN 978 3 96645 007 2 Referenzen Michael Weigend Python ge packt 6 Auflage mitp Frechen 2015 ISBN 978 3 8266 8726 6 S 644 Johannes Ernesti Peter Kaiser Python 3 Das umfassende Handbuch 5 aktualisierte Auflage Rheinwerk Bonn 2017 ISBN 978 3 8362 5864 7 rheinwerk verlag de OpenBook beim Verlag Mark Lutz Python Kurz amp gut 5 Auflage O Reilly Koln u a 2014 ISBN 978 3 95561 770 7 S 270 Weiterfuhrendes Luciano Ramalho Fluent Python Clear concise and effective programming 1 Auflage O Reilly Sebastopol CA u a 2015 ISBN 978 1 4919 4600 8 S 744 Inhaltsverzeichnis PDF Gregor Lingl Python fur Kids 4 Auflage bhv 2010 ISBN 3 8266 8673 X Farid Hajji Das Python Praxisbuch 1 Auflage Addison Wesley 2008 ISBN 978 3 8273 2543 3 Hans P Langtangen Python Scripting for Computational Science 3 Auflage Springer 2008 ISBN 3 540 43508 5 Michael Weigend Objektorientierte Programmierung mit Python mitp Verlag 1 Auflage 2006 ISBN 3 8266 0966 2 Felix Bittmann Praxishandbuch Python 3 Konzepte der Programmierung verstehen und anwenden 1 Auflage Books on Demand Norderstedt 2020 ISBN 978 3 7519 0058 4 S 240 Inhaltsverzeichnis Weblinks Bearbeiten nbsp Commons Python Sammlung von Bildern Videos und Audiodateien nbsp Wikibooks Python 2 unter Linux Lern und Lehrmaterialien python org englisch Tutorials Bearbeiten Fur Anfanger Bearbeiten Python Examples englisch Online Kurse und Tutorials fur Python 2 und 3 Python Kurs eu Online Kurs University of Waterloo deutsch englisch franzosisch Practical programming for total beginners Automate the Boring Stuff with Python englisch Einstieg in Python Prof Dr Michael Weigend deutsch Python Grafische Benutzeroberflachen fur Python Skripte erstellen Dr Veikko Krypczyk deutsch Fur Fortgeschrittene Bearbeiten PythonProgramming net Python Tutorials fur Data analysis Machine learning amp GUIs englisch PyData Python Vortrage und Tutorials fur Data analysis Machine learning etc englisch Awesome Python Liste von Frameworks Bibliotheken und Ressourcen nach Themen gegliedert englisch Python 3 Das umfassende Handbuch Rheinwerk openbook zu Python 3 deutsch Fur Kinder Bearbeiten Snake Wrangling for Kids Learning to Program with Python von Jason R Briggs fur Kinder ab acht Jahren englisch Schlangengerangel fur Kinder Programmieren Lernen fur Kinder PDF 2 1 MB fur Kinder ab acht Jahren deutsch Einzelnachweise Bearbeiten a b History and License Python documentation abgerufen am 19 August 2016 History and License Python documentation abgerufen am 3 Juli 2019 Python 3 12 released 2 Oktober 2023 englisch abgerufen am 2 Oktober 2023 Python 3 12 Released With Linux Perf Integration Performance Improvements 2 Oktober 2023 englisch abgerufen am 2 Oktober 2023 Python 3 12 0 final now available 2 Oktober 2023 englisch abgerufen am 2 Oktober 2023 impythonist wordpress com abgerufen am 19 August 2016 Why was Python created in the first place Python Software Foundation abgerufen am 22 Marz 2017 a b Classes The Python Tutorial Python Software Foundation An Introduction to Python for UNIX C Programmers Functional Programming HOWTO Download Python History and License Python documentation What is Python Good For In General Python FAQ Python Foundation abgerufen am 5 September 2008 englisch What is Python Executive Summary In Python documentation Python Foundation abgerufen am 21 Marz 2007 englisch Offizielle Python FAQ sowie Python Tutorial Kapitel 1 The Cobra Programming Language In cobra language com Abgerufen im 1 Januar 1 englisch Boa Constructor home In boa constructor sourceforge net Abgerufen im 1 Januar 1 englisch Guido van Rossum Kommentar zur Entfernung einiger funktionaler Konzepte Abgerufen am 11 August 2014 englisch A Kuchling Moshe Zadka Dokumentation Python 2 0 Python Software Foundation abgerufen am 11 August 2014 englisch heise de Python 2 6 offnet Wege zu Version 3 vom 2 Oktober 2008 abgerufen am 4 Oktober 2008 Guido van Rossum Dokumentation Python 3 0 Python Software Foundation 14 Februar 2009 abgerufen am 11 August 2014 englisch a b c d e f Guido van Rossum A Brief Timeline of Python 20 Januar 2009 abgerufen am 29 November 2019 englisch a b Releases Python org Abgerufen am 29 November 2019 englisch Fred L Jr Drake PEP 160 Python 1 6 Release Schedule 25 Juli 2000 abgerufen am 29 November 2019 englisch a b c d e f g Download Python Python org Abgerufen am 29 November 2019 englisch Jeremy Hylton PEP 200 Python 2 0 Release Schedule Abgerufen am 29 November 2019 englisch Jeremy Hylton PEP 226 Python 2 1 Release Schedule 16 Oktober 2000 abgerufen am 29 November 2019 englisch Barry Warsaw Guido van Rossum PEP 251 Python 2 2 Release Schedule 17 April 2001 abgerufen am 29 November 2019 englisch Guido van Rossum PEP 283 Python 2 3 Release Schedule 27 Februar 2002 abgerufen am 29 November 2019 englisch Barry Warsaw Raymond Hettinger Anthony Baxter PEP 320 Python 2 4 Release Schedule 29 Juli 2003 abgerufen am 29 November 2019 englisch Neal Norwitz Guido van Rossum Anthony Baxter PEP 356 Python 2 5 Release Schedule 7 Februar 2006 abgerufen am 29 November 2019 englisch a b Neal Norwitz Barry Warsaw PEP 361 Python 2 6 and 3 0 Release Schedule 29 Juni 2006 abgerufen am 29 November 2019 englisch Benjamin Peterson PEP 373 Python 2 7 Release Schedule 3 November 2008 abgerufen am 20 April 2020 englisch 17 Development Cycle Python Developer s Guide Abgerufen am 29 November 2019 englisch Benjamin Peterson PEP 375 Python 3 1 Release Schedule 8 Februar 2009 abgerufen am 29 November 2019 englisch Georg Brandl PEP 392 Python 3 2 Release Schedule 30 Dezember 2009 abgerufen am 29 November 2019 englisch Georg Brandl PEP 398 Python 3 3 Release Schedule 23 Marz 2011 abgerufen am 29 November 2019 englisch Larry Hastings PEP 429 Python 3 4 Release Schedule 17 Oktober 2012 abgerufen am 29 November 2019 englisch Larry Hastings PEP 478 Python 3 5 Release Schedule 22 September 2014 abgerufen am 17 Marz 2020 englisch Ned Deily PEP 494 Python 3 6 Release Schedule 30 Mai 2015 abgerufen am 23 Mai 2022 englisch Ned Deily PEP 537 Python 3 7 Release Schedule 23 Dezember 2016 abgerufen am 1 Februar 2023 englisch Lukasz Langa PEP 569 Python 3 8 Release Schedule 27 Januar 2018 abgerufen am 1 Februar 2023 englisch Lukasz Langa PEP 596 Python 3 9 Release Schedule 13 Oktober 2020 abgerufen am 1 Februar 2023 englisch Pablo Salgado PEP 619 Python 3 10 Release Schedule 25 Mai 2020 abgerufen am 1 Februar 2023 englisch Pablo Salgado PEP 664 Python 3 11 Release Schedule 12 Juli 2021 abgerufen am 1 Februar 2023 englisch Thomas Wouters PEP 693 Python 3 12 Release Schedule 24 Mai 2022 abgerufen am 12 November 2022 englisch 2 Lexical analysis Python 3 7 2rc1 documentation englisch Marty Alchin Pro Python Hrsg Apress 2010 ISBN 978 1 4302 2757 1 S 6 englisch Bill Venners Interview mit Guido van Rossum Artima 13 Januar 2003 abgerufen am 15 August 2014 englisch Verwendung fremdsprachiger Module In Python Python Software Foundation abgerufen am 8 August 2023 englisch Guido van Rossum Ivan Levkivskyi PEP 483 The Theory of Type Hints Python Software Foundation 19 Dezember 2014 abgerufen am 18 Oktober 2020 englisch Guido van Rossum Jukka Lehtosalo Lukasz Langa PEP 484 Type Hints Python Software Foundation 29 September 2014 abgerufen am 18 Oktober 2020 englisch Mark Lutz David Ascher Learning Python 2nd Edition In Safari Books Online 23 Dezember 2003 abgerufen im 1 Januar 1 englisch Coconut Erweiterung zu Pyhon Pyston Python Performance Abgerufen am 18 September 2022 MicroPython Python for microcontrollers In micropython org Abgerufen im 1 Januar 1 englisch Python IntelliJ IDEA In jetbrains com 8 Marz 2021 abgerufen am 14 Januar 2023 englisch Conda documentation Abgerufen am 25 Februar 2016 englisch Quotes about Python Abgerufen am 25 Juni 2011 Computer Science Circles ein kostenfreier Dienst des Centre for Education in Mathematics and Computing University of Waterloo Programmieren lernen mit Python App Camps gemeinnutzige Unternehmergesellschaft Hamburg Programming for Data Science with Python Udacity Einstieg ins Programmieren mit Python Web 2 Unterricht 3 September 2017 Python die Programmiersprache fur imperative und objektorientierte Programmierung Bildungsserver Berlin Brandenburg Programmieren mit Python Bildungsserver Rheinland Pfalz Man vergleiche z B Programmieren supereasy Einfacher Einstieg in Scratch und Python von Carol Vorderman und Jon Woodcock Dorling Kindersley Verlag oder Python 4 Kids von Gregor Lingl Mitp Verlag OLPC Wiki Python fur den 100 Dollar Laptop Karin Zuhlke Erstmals Live on stage Farnell zeigt den Raspberry Pi Nachwuchs Abgerufen im 1 Januar 1 englisch Programmieren lernen Bundesweite Informatikwettbewerbe Ein Projekt der Gesellschaft fur Informatik e V des Fraunhofer Verbunds IUK Technologie und des Max Planck Instituts fur Informatik Flyer TigerJython Programmierkonzepte mit Python PDF 468 kB Padagogischen Hochschule Bern Jupyter Mathematica and the Future of the Research Paper paulromer net 13 April 2018 abgerufen am 12 Dezember 2019 englisch Benjamin Peterson Python Insider Python 2 7 18 the last release of Python 2 In Python Insider 20 April 2020 abgerufen am 12 Juli 2022 heise online Programmiersprachen Lang lebe Python 3 finales Release von Python 2 Abgerufen am 12 Juli 2022 Python Software Foundation Press Release 20 Dec 2019 Abgerufen am 12 Juli 2022 englisch Golem de IT News fur Profis Abgerufen am 12 Juli 2022 Porting Python 2 Code to Python 3 Python 3 7 13 documentation Abgerufen am 12 Juli 2022 The Conservative Python 3 Porting Guide Conservative Python 3 Porting Guide 1 0 documentation Abgerufen am 12 Juli 2022 Lennart Regebro Supporting Python 3 Supporting Python 3 An in depth guide Abgerufen am 12 Juli 2022 englisch 25 4 2to3 Automated Python 2 to 3 code translation Python 2 7 18 documentation Abgerufen am 12 Juli 2022 six pypi python org und https pythonhosted org six Python Modernize modernize 0 6 1 documentation Abgerufen am 12 Juli 2022 Easy clean reliable Python 2 3 compatibility Python Future documentation Abgerufen am 12 Juli 2022 Victor Stinner sixer Add Python 3 support to Python 2 applications using the six module Abgerufen am 12 Juli 2022 limodou 2to6 25 Juni 2019 abgerufen am 12 Juli 2022 A M Kuchling Abgerufen am 1 September 2020 englisch amk ca Memento vom 2 Oktober 2003 im Internet Archive Guido van Rossum Why explicit self has to stay Tim Peters The Zen of Python Python Software Foundation 19 August 2004 abgerufen am 12 August 2014 englisch PEP 3135 New Super In Python org Abgerufen im 1 Januar 1 englisch Library and Extension FAQ Python 3 7 0 documentation In Python org Abgerufen im 1 Januar 1 englisch Guido van van Rossum It isn t Easy to Remove the GIL In Artima com Abgerufen im 1 Januar 1 englisch Python C Archiviert vom Original am 26 Dezember 2015 abgerufen am 25 Dezember 2015 englisch Python Perl Archiviert vom Original am 26 Dezember 2015 abgerufen am 25 Dezember 2015 englisch Benchmark Vergleich Python PHP Archiviert vom Original am 26 Dezember 2015 abgerufen am 25 Dezember 2015 englisch Benchmark Vergleich Python Dart Archiviert vom Original am 26 Dezember 2015 abgerufen am 25 Dezember 2015 englisch Benchmark Vergleich Python Ruby Archiviert vom Original am 26 Dezember 2015 abgerufen am 25 Dezember 2015 englisch 1 2 Vorlage Toter Link www6 uniovi es Python Culture Seite nicht mehr abrufbar festgestellt im Dezember 2009 Suche in Webarchiven Python Patterns An Optimization Anecdote In Python org Abgerufen im 1 Januar 1 englisch nbsp Dieser Artikel ist als Audiodatei verfugbar source source Speichern 20 30 min 13 0 MB Text der gesprochenen Version 5 Januar 2010 Mehr Informationen zur gesprochenen Wikipedia nbsp Dieser Artikel wurde am 23 Oktober 2005 in dieser Version in die Liste der lesenswerten Artikel aufgenommen Normdaten Sachbegriff GND 4434275 5 lobid OGND AKS LCCN sh96008834 Abgerufen von https de wikipedia org w index php title Python Programmiersprache amp oldid 237866742