Python (Programmiersprache)

Python
Python-logo-notext.svg
Paradigma Multi-Paradigma: objektorientierter,[1] prozedural (Imperativ), funktional, strukturiert, reflektierend
Entworfen von Guido van Rossum
Entwickler Python Software Foundation
Erstmals erschienen 20. Februar 1991; Vor 31 Jahren[2]
Stabile Version
3.10.5[3] Edit this on Wikidata / 6. Juni 2022; Vor 54 Tagen
Disziplin tippen Ente, dynamisch, Starke Typisierung;[4] schrittweise (Seit 3,5, aber ignoriert in Cpython)[5]
OS Fenster, Mac OS, Linux/Unix, Android[6][7] und mehr[8]
Lizenz Python Software Foundation Lizenz
Dateiname -Erweiterungen .py, .pyi, .pyc, .pyd, .pyo (vor 3.5),[9] .pyw, .pyz (seit 3,5)[10]
Webseite www.Python.org
Haupt Implementierungen
Cpython, Pypy, Stackloser Python, Mikropython, Circuitpython, Ironpython, Jython
Dialekte
Cython, Rpython, Starlark[11]
Beeinflusst von
ABC,[12] Ada,[13] Algol 68,[14] Apl,[15] C,[16] C ++,[17] Clu,[18] Dylan,[19] Haskell,[20] Symbol,[21] Lispeln,[22] Modula-3,[17] Perl, Standard ml[15]
Beeinflusst
Apache Groovy, Boo, Kobra, CoffeeScript,[23] D, F#, Genie,[24] gehen, JavaScript,[25][26] Julia,[27] Nim, Ring,[28] Rubin,[29] Schnell[30]
  • Python -Programmierung bei Wikibooks

Python ist ein hohes Level, interpretiert, Allzweckprogrammiersprache. Seine Designphilosophie betont Code -Lesbarkeit mit Hilfe von signifikante Einkerbung.[31]

Python ist dynamisch typisch und garbage gesammelt. Es unterstützt mehrere Programmierparadigmen, einschließlich strukturiert (im Speziellen prozedural), objektorientierter und Funktionelle Programmierung. Es wird oft als "Batterien enthalten" Sprache aufgrund seiner umfassenden Sprache beschrieben Standardbibliothek.[32][33]

Guido van Rossum begann Ende der 1980er Jahre als Nachfolger der Arbeit an Python zu arbeiten ABC -Programmiersprache und veröffentlichte es zum ersten Mal 1991 als Python 0.9.0.[34] Python 2.0 wurde im Jahr 2000 veröffentlicht und neue Funktionen wie z. Listen Sie Verständnisse auf, Zykluserkennung Müllsammlung, Referenzzählung, und Unicode Unterstützung. Python 3.0, das 2008 veröffentlicht wurde, war eine wichtige Überarbeitung, die nicht vollständig ist rückwärtskompatibel mit früheren Versionen. Python 2 wurde im Jahr 2020 mit Version 2.7.18 eingestellt.[35]

Python ist durchweg als eine der beliebtesten Programmiersprachen.[36][37][38][39]

Geschichte

Der Designer von Python, Guido van Rossum, bei Oscon 2006

Python wurde Ende der 1980er Jahre konzipiert[40] durch Guido van Rossum bei Centrum Wiskunde & Informatica (CWI) in der Niederlande Als Nachfolger der ABC -Programmiersprache, was inspiriert wurde von Setl,[41] capable of Ausnahmebehandlung und Schnittstelle mit dem Amöbe Betriebssystem.[12] Die Umsetzung begann im Dezember 1989.[42] Van Rossum schulterte die alleinige Verantwortung für das Projekt als leitender Entwickler bis zum 12. Juli 2018, als er seinen "ständigen Urlaub" aus seiner Verantwortung als Pythons ankündigte "Wohlwollender Diktator für das Leben", Ein Titel, den die Python-Community ihm verlieh, um sein langfristiges Engagement als Hauptentscheidung des Projekts widerzuspiegeln.[43] Im Januar 2019 wählten aktive Python-Kernentwickler einen fünfköpfigen Lenkungsrat, um das Projekt zu leiten.[44][45]

Python 2.0 wurde am 16. Oktober 2000 mit vielen wichtigen neuen Funktionen veröffentlicht.[46] Python 3.0, veröffentlicht am 3. Dezember 2008, mit vielen seiner Hauptmerkmale zurückportiert nach Python 2.6.x[47] und 2.7.x. Veröffentlichungen von Python 3 enthalten die 2to3 Dienstprogramm, das die Übersetzung von Python 2 Code in Python 3 automatisiert.[48]

Python 2.7 Lebensende wurde zunächst für 2015 eingestellt und wurde dann aus Sorge auf 2020 verschoben, dass ein großer Teil des vorhandenen Code nicht leicht zu Python 3 weitergeleitet werden konnte.[49][50] Dafür werden keine weiteren Sicherheitspatches oder andere Verbesserungen veröffentlicht.[51][52] Mit Python 2's Lebensende, nur Python 3.6.x[53] und später unterstützt. Später wurde auch die Unterstützung für 3.6 eingestellt. Im Jahr 2021 wurden Python 3.9.2 und 3.8,8 beschleunigt[54] als alle Versionen von Python (einschließlich 2.7[55]) Sicherheitsfragen, die zu möglich waren Remote -Code -Ausführung[56] und Web -Cache -Vergiftung.[57]

Im Jahr 2022 wurden Python 3.10.4 und 3.9.12 beschleunigt[58] Und so waren ältere Veröffentlichungen wie 3,8,13 und 3,7,13 aufgrund vieler Sicherheitsprobleme.[59] Python 3.9.13 ist die neueste 3.9 -Version, und von jetzt an 3.9 (und älter; 3.8 und 3.7) erhält nur Sicherheitsaktualisierungen.[60]

Designphilosophie und Funktionen

Python ist a Multi-Paradigm-Programmiersprache. Objekt orientierte Programmierung und Strukturierte Programmierung werden vollständig unterstützt, und viele ihrer Funktionen unterstützen funktionale Programmierung und unterstützen Aspekt-orientiertes Programmieren (einschließlich Metaprogrammierung[61] und MetaObjects [magische Methoden]).[62] Viele andere Paradigmen werden über Erweiterungen unterstützt, einschließlich Entwurf durch Vertrag[63][64] und Logikprogrammierung.[65]

Python verwendet Dynamisches Typing und eine Kombination von Referenzzählung und ein Zykluskennungsmüllsammler für Speicherverwaltung.[66] Es verwendet dynamisch Namensauflösung (späte Bindung), die Methoden- und Variablennamen während der Programmausführung bindet.

Das Design bietet eine gewisse Unterstützung für funktionale Programmierung in der Lispeln Tradition. Es hat Filter,Karteundreduzieren Funktionen; Listen Sie Verständnisse auf, Wörterbücher, Sets und Generator Ausdrücke.[67] Die Standardbibliothek hat zwei Module (ITertools und Functools), die funktionale Tools implementieren, die ausgeliehen wurden Haskell und Standard ml.[68]

Seine Kernphilosophie ist im Dokument zusammengefasst Das Zen von Python (Pep 20), welches beinhaltet Aphorismen wie zum Beispiel:[69]

  • Schön ist besser als hässlich.
  • Explizit ist besser als implizit.
  • Einfach ist besser als komplex.
  • Komplex ist besser als kompliziert.
  • Lesbarkeit zählt.

Anstatt all seine Funktionen in seinen Kern aufzubauen, wurde Python so konzipiert, dass er hoch ist erweiterbar über Module. Diese kompakte Modularität hat es besonders beliebt als Mittel zum Hinzufügen programmierbarer Schnittstellen zu vorhandenen Anwendungen. Van Rossums Vision einer kleinen Kernsprache mit einer großen Standardbibliothek und leicht erweiterbarer Dolmetscher stammt aus seinen Frustrationen mit ABC, was sich für den entgegengesetzten Ansatz einsetzte.[40]

Python strebt nach einer einfacheren, weniger geknüpften Syntax und Grammatik und gibt den Entwicklern eine Wahl in ihrer Codierungsmethode. Im Kontrast zu Perl's "Es gibt mehr als einen Weg, dies zu tun"Motto, Python umfasst eine" es sollte eine - und vorzugsweise nur eine - eine beliebige Art, dies zu tun "-Philosophie geben.[69] Alex Martelli, a Gefährte Bei der Python Software Foundation und Python -Buchautor schrieb: "Etwas als" kluges "zu beschreiben ist nicht als Kompliment in der Python -Kultur angesehen. "[70]

Pythons Entwickler bemühen sich zu vermeiden Frühgeborene Optimierung und Patches in nicht kritische Teile der Cpython Referenzimplementierung, die eine geringfügige Geschwindigkeitserhöhung auf Kosten der Klarheit bieten würde.[71] Wenn die Geschwindigkeit wichtig ist, kann ein Python-Programmierer zeitkritische Funktionen in Erweiterungsmodule verschieben, die in Sprachen wie C geschrieben wurden. oder verwenden Pypy, a Just-in-Time-Compiler. Cython ist ebenfalls verfügbar, das ein Python-Skript in C übersetzt und direkte API-Aufrufe von C-Level in den Python-Dolmetscher tätigt.

Die Entwickler von Python wollen Spaß machen, Spaß zu machen. Dies spiegelt sich in seinem Namen wider - eine Hommage an die britische Comedy -Gruppe Monty Python[72]- und gelegentlich spielerische Ansätze zu Tutorials und Referenzmaterialien wie Beispiele, die sich auf Spam und Eier beziehen (ein Verweis auf a Monty Python Sketch) anstelle des Standards Foo und Bar.[73][74]

Der Name der Programmiersprache 'Python' stammt aus einer BBC -Comedy -Serie in den 1970er Jahren mit dem Namen Monty Pythons Flying Circus. Guido van Rossum Ich dachte, er brauchte einen Namen, der kurz, einzigartig und leicht mysteriös war, und so beschloss er, die Programmiersprache 'Python' zu benennen.[72]

Eine gemeinsame Neologismus In der Python -Community ist pythonisch, das eine breite Palette von Bedeutungen auf dem Programmstil hat. "Pythonischer" Code kann Python -Redewendungen gut verwenden, natürlich sein oder fließende Sprache zeigen oder mit Pythons minimalistischer Philosophie und Betonung der Lesbarkeit entsprechen. Code, der schwer zu verstehen ist oder wie eine grobe Transkription aus einer anderen Programmiersprache liest, heißt Unpythonisch.[75][76]

Python -Benutzer und Bewunderer, insbesondere diejenigen, die als kompetent oder erfahren angesehen werden, werden häufig als als bezeichnet Pythonistas.[77][78]

Syntax und Semantik

Python soll eine leicht lesbare Sprache sein. Die Formatierung ist visuell übersichtlich und verwendet häufig englische Schlüsselwörter, bei denen andere Sprachen Interpunktion verwenden. Im Gegensatz zu vielen anderen Sprachen wird es nicht verwendet geschweifte Klammern Um Blöcke abzugrenzen, und Semikolons nach Aussagen sind zulässig, aber selten verwendet. Es hat weniger syntaktische Ausnahmen und Sonderfälle als C oder Pascal.[79]

Vertiefung

Python verwendet Whitespace Einrückung eher als geschweifte Klammern oder Schlüsselwörter, um abzugrenzen Blöcke. Eine Erhöhung der Eindrücke kommt nach bestimmten Aussagen; Eine Verringerung der Eindrücke bedeutet das Ende des Stromblocks.[80] Somit repräsentiert die visuelle Struktur des Programms genau seine semantische Struktur.[81] Diese Funktion wird manchmal als als als bezeichnet Off-Side-Regel. Einige andere Sprachen verwenden die Eindrücke auf diese Weise; Aber in den meisten Fällen hat Einrückung keine semantische Bedeutung. Die empfohlene Einrückungsgröße beträgt vier Felder.[82]

Aussagen und Steuerfluss

Python Aussagen enthalten:

  • Das Abtretung Anweisung unter Verwendung eines einzelnen Gleichen Zeichens =
  • Das wenn Anweisung, die bedingt einen Codeblock zusammen mit ausführt anders und elif (eine Kontraktion von sonst-ifes)
  • Das zum Anweisung, die über ein iterierbares Objekt iteriert und jedes Element für eine lokale Variable für die Verwendung durch den angehängten Block erfasst
  • Das während Anweisung, die einen Codeblock ausführt, solange seine Bedingung wahr ist
  • Das Versuchen Anweisung, die es ermöglicht, Ausnahmen in seinem beigefügten Codeblock zu erfassen, die von gefangen und behandelt werden können außer Klauseln (oder neue Syntax außer* in Python 3.11 für Ausnahmegruppen[83]); Es stellt auch sicher, dass der Aufräumcode in a endlich Block wird immer ausgeführt, unabhängig davon, wie der Block ausgeht
  • Das heben Aussage, verwendet, um eine bestimmte Ausnahme auszusetzen oder eine erwischte Ausnahme wieder zu sammeln
  • Das Klasse Anweisung, die einen Codeblock ausführt und seinen lokalen Namespace an a anhält Klassezur Verwendung in objektorientierter Programmierung
  • Das def Erklärung, die a definiert Funktion oder Methode
  • Das mit Anweisung, die einen Codeblock in einen Kontextmanager einschließt (z. B. Erwerb a sperren Bevor es ausgeführt wird, geben Sie dann das Schloss frei; oder öffnen und schließen a Datei), erlauben Ressourcen-Akquisition-Is-Initialisierung (Raii) -ähnliches Verhalten und Ersetzen eines gemeinsamen Versuchs/endgültigen Idioms[84]
  • Das Unterbrechung Aussage, die eine Schleife verlässt
  • Das fortsetzen Aussage, die die aktuelle Iteration überspringt und mit dem nächsten fortgesetzt wird
  • Das del Anweisung, die eine Variable beseitigt - die Referenz vom Namen auf den Wert ausschlägt und einen Fehler erzeugt
  • Das passieren Aussage, dient als NOPsyntaktisch benötigt, um einen leeren Codeblock zu erstellen
  • Das behaupten Aussage, die zum Debuggen verwendet wird, um nach Bedingungen zu prüfen, die gelten sollten
  • Das Ertrag Anweisung, die einen Wert von a zurückgibt Generator Funktion (und auch ein Operator); verwendet zur Implementierung Coroutinen
  • Das Rückkehr Anweisung, verwendet, um einen Wert aus einer Funktion zurückzugeben
  • Das importieren Anweisung, verwendet, um Module zu importieren, deren Funktionen oder Variablen im aktuellen Programm verwendet werden können

Die Zuweisungsanweisung (=) bindet einen Namen als Hinweis zu einem separaten, dynamisch zugezogenen Objekt. Variablen können anschließend jederzeit auf jedes Objekt erholt werden. In Python ist ein variabler Name ein generischer Referenzhalter ohne feste Datentyp; Es bezieht sich jedoch immer auf etwas Objekt mit einem Typ. Das nennt man Dynamisches Typing-im Kontrast zu statisch typiert Sprachen, wobei jede Variable nur einen Wert eines bestimmten Typs enthalten kann.

Python unterstützt nicht Schwanzanruf Optimierung oder erstklassige Kontinuationenund laut Van Rossum wird es es nie tun.[85][86] Aber bessere Unterstützung für Coroutine-Blike Funktionalität wird durch Erweiterung von Python's bereitgestellt Generatoren.[87] Vor 2,5 waren Generatoren faul Iteratoren; Die Daten wurden unidirektional aus dem Generator herausgegeben. Ab Python 2.5 ist es möglich, Daten in eine Generatorfunktion zurückzugeben. Und aus Version 3.3 kann es über mehrere Stapelpegel weitergegeben werden.[88]

Ausdrücke

Einige Python Ausdrücke sind ähnlich wie in Sprachen wie C und Java, während einige nicht sind:

  • Addition, Subtraktion und Multiplikation sind gleich, aber das Verhalten der Teilung unterscheidet sich. In Python gibt es zwei Arten von Abteilungen: Bodenabteilung (oder ganzzahlige Abteilung) // und schwimmender Punkt/Aufteilung.[89] Python verwendet auch die ** Operator zur Exponentiation.
  • Das @ Infixbetreiber. Es soll von Bibliotheken wie verwendet werden, z. Numpy zum Matrix-Multiplikation.[90][91]
  • Die Syntax : =, genannt "Walross -Operator", wurde in Python 3.8 eingeführt. Es weist Variablen als Teil eines größeren Ausdrucks Werte zu.[92]
  • In Python, == Vergleich nach Wert, versus Java, das Numeriker nach Wert vergleicht[93] und Objekte durch Bezugnahme.[94] Python ist Der Bediener kann verwendet werden, um Objektidentitäten zu vergleichen (Vergleich durch Referenz), und Vergleiche können zum Beispiel angekettet werden. a <= b <= c.
  • Python verwendet und, oder, und nicht eher als booleschen Bediener als als symbolisch &&, ||, ! in Java und C.
  • Python hat einen Ausdruck genannt Listenverständnissowie ein allgemeinerer Ausdruck genannt a Generator Ausdruck.[67]
  • Anonyme Funktionen werden verwendet Lambda -Ausdrücke; Es kann jedoch nur einen Ausdruck in jedem Körper geben.
  • Bedingte Ausdrücke sind geschrieben als x if c else y[95] (anders in der Reihenfolge der Operanden von der c ? x: y Operator gemeinsam, die vielen anderen Sprachen gemeinsam sind).
  • Python unterscheidet dazwischen Listen und Tupel. Listen werden als geschrieben als [1, 2, 3], sind veränderlich und können nicht als Schlüssel der Wörterbücher verwendet werden (Wörterbuchschlüssel müssen sein unveränderlich in Python). Tupel, geschrieben als (1, 2, 3), sind unveränderlich und können daher als Schlüssel von Wörterbüchern verwendet werden, vorausgesetzt, alle Elemente des Tupels sind unveränderlich. Das + Der Bediener kann verwendet werden, um zwei Tupel zu verkettet, die ihren Inhalt nicht direkt ändern, sondern ein neues Tupel erzeugen, das die Elemente beider enthält. Daher angesichts der Variablen t anfangs gleich (1, 2, 3)Ausführung t = t + (4, 5) zuerst bewertet t + (4, 5), was ergibt (1, 2, 3, 4, 5), was dann zurück zugewiesen wird t- danach effektiv "modifizieren Sie den Inhalt" von t Während sich die unveränderliche Natur von Tupelobjekten entspricht. Klammern sind für Tupel in eindeutigen Kontexten optional.[96]
  • Python -Funktionen Sequenzpackung Wenn mehrere Ausdrücke, die jeweils alles bewerten, was zugewiesen werden kann (einer variablen, beschreibbaren Eigenschaft usw.), werden auf identische Weise mit den bildenden Tupel-Literalen verbunden-und insgesamt auf die linke Seite von gelegt werden Das gleiche Zeichen in einer Zuweisungsanweisung. Die Erklärung erwartet eine wiederholbar Objekt auf der rechten Seite des gleichen Vorzeichens, das die gleiche Anzahl von Werten erzeugt wie die bereitgestellten beschreibbaren Ausdrücke; Wenn es durch sie iteriert wird, weist es jedem der produzierten Werte dem entsprechenden Ausdruck links zu.[97]
  • Python hat einen "String -Format" -Operator % das funktioniert analog zu printf Format Saiten in c - e.g. "spam=%s eggs=%d" % ("blah", 2) bewertet "Spam = bla Eier = 2". In Python 2.6+ und 3+ wurde dies durch die ergänzt Format() Methode der str Klasse, z. "spam={0} eggs={1}".format("blah", 2). Python 3.6 fügte "F-Strings" hinzu: spam = "blah"; eggs = 2; f'spam={spam} eggs={eggs}'.[98]
  • Saiten in Python können sein verkettet durch "Hinzufügen" (mit demselben Bediener wie zum Hinzufügen von Ganzzahlen und Schwimmern), z. "spam" + "eggs" kehrt zurück "Spamggs". Wenn Saiten Zahlen enthalten, werden sie eher als Zeichenfolgen als als Ganzzahlen hinzugefügt, z. "2" + "2" kehrt zurück "22".
  • Python hat verschiedene String -Literale:
    • Abgrenzt von einzelne oder doppelte Zitatmarken. Anders als in Unix -Muscheln, Perlund perl beeinflusste Sprachen, Einzel- und Doppelzitatmarkierungen identisch funktionieren. Beide verwenden den Backslash (\) als an Escape-Zeichen. String -Interpolation wurde in Python 3.6 als "formatierte String -Literale" erhältlich.[98]
    • Dreifach zitierter (Beginn und enden mit drei einzelnen oder doppelten Zitatmarken), die mehrere Zeilen umfassen und wie wie Hier Dokumente in Schalen, Perl und Rubin.
    • Rohe Schnur Sorten, gekennzeichnet durch das Präfix der String buchstäblich mit r. Escape -Sequenzen werden nicht interpretiert; Daher sind rohe Saiten nützlich, wenn wörtliche Backslashes üblich sind, wie z. Reguläre Ausdrücke und Fenster-Stilwege. (Vergleichen "@-Quoting "in C#.))
  • Python hat Array -Index und Arrayschneide Ausdrücke in Listen, bezeichnet als als ein Schlüssel], a[start:stop] oder a[start:stop:step]. Indizes sind Nullbasiertund negative Indizes sind relativ zum Ende. Scheiben nehmen Elemente aus dem Anfang index bis, aber nicht einschließlich, die Pause Index. Der dritte Slice -Parameter, genannt Schritt oder schreiten, Ermöglicht, dass Elemente übersprungen und umgekehrt werden. Slice -Indizes können zum Beispiel weggelassen werden, zum Beispiel, a[:] Gibt eine Kopie der gesamten Liste zurück. Jedes Element einer Scheibe ist a flache Kopie.

In Python wird eine Unterscheidung zwischen Ausdrücken und Aussagen im Gegensatz zu Sprachen wie z. Common Lisp, Planen, oder Rubin. Dies führt zur Duplizierung einiger Funktionen. Zum Beispiel:

  • Listen Sie Verständnisse auf vs. zum-Loops
  • Bedingt Ausdrücke vs. wenn Blöcke
  • Das eval () vs. exec () integrierte Funktionen (in Python 2,, Geschäftsführer ist eine Aussage); Ersteres ist für Ausdrücke, letzteres ist für Aussagen

Aussagen können nicht Teil eines Ausdrucks sein - so Liste und andere Verständnisse oder Lambda -AusdrückeAlle Ausdrücke sind keine Aussagen. Ein bestimmter Fall ist, dass eine Zuordnungserklärung wie z. a = 1 Kann nicht Teil des bedingten Ausdrucks einer bedingten Aussage sein. Dies hat den Vorteil, einen klassischen C -Fehler zu vermeiden, einen Zuordnungsoperator zu verwechseln = Für einen Gleichstellungsoperator == unter Bedingungen: if (c = 1) { ... } ist syntaktisch gültig (aber wahrscheinlich unbeabsichtigt) C -Code, aber if c = 1: ... verursacht einen Syntaxfehler in Python.

Methoden

Methoden auf Objekten sind Funktionen an die Klasse des Objekts beigefügt; die Syntax instance.method(argument) ist für normale Methoden und Funktionen, syntethischer Zucker zum Class.method(instance, argument). Python -Methoden haben explizit selbst Parameter zum Zugriff Instanzdatenim Gegensatz zum impliziten Selbst (oder Dies) in einigen anderen objektorientierten Programmiersprachen (z. B.,,, C ++, Java, Ziel c, Rubin).[99] Python liefert auch Methoden, die oft genannt werden Dunder -Methoden (Aufgrund ihrer Namen beginnen und enden mit Double-Anderscores), um benutzerdefinierte Klassen zu ändern, wie sie durch native Vorgänge einschließlich Länge, Vergleich, in Rechenoperationen und Typumwandlung Typ.[100]

Typisierung

Die Standardtyphierarchie in Python 3

Python verwendet Ententypisierung und hat Objekte tippt, aber variable Namen. Typ -Einschränkungen werden bei nicht überprüft Zeit kompilieren; Vielmehr können Operationen auf einem Objekt fehlschlagen, was bedeutet, dass es sich nicht um einen geeigneten Typ handelt. Trotz des Seins dynamisch typisch, Python ist stark typischVerbot von Operationen, die nicht genau definiert sind (z. B. eine Zahl zu einer Zeichenfolge hinzufügen), anstatt stillschweigend zu versuchen, sie zu verstehen.

Python ermöglicht es den Programmierern, ihre eigenen Typen zu definieren Klassen, meistens für verwendet für Objekt orientierte Programmierung. Neu Instanzen von Klassen werden durch Aufrufen der Klasse konstruiert (zum Beispiel, zum Beispiel, SpamClass() oder EggsClass()) und die Klassen sind Fälle der Metaklas Typ (selbst eine Instanz von sich selbst), die die Metaprogrammierung ermöglichen und Betrachtung.

Vor Version 3.0 hatte Python zwei Arten von Klassen (beide unter Verwendung derselben Syntax): alter Stil und neuer Stil,[101] Aktuelle Python -Versionen unterstützen nur den neuen Stil der Semantik.

Der langfristige Plan besteht darin, zu unterstützen schrittweise Typisierung.[102] Die Syntax von Python ermöglicht die Angabe statischer Typen, sie werden jedoch in der Standardimplementierung nicht überprüft. Cpython. Ein experimenteller optionaler statischer Typ-Prüfer, Mypy, unterstützt die Überprüfung des Kompilierungszeit-Typs.[103]

Zusammenfassung der integrierten Typen von Python 3
Typ Wandlungsfähigkeit Beschreibung Beispiele für Syntax
bool unveränderlich Boolescher Wert True
False
Bytearray veränderlich Eine Reihe von Bytes bytearray(b'Some ASCII')
bytearray(b"Some ASCII")
bytearray([119, 105, 107, 105])
Bytes unveränderlich Sequenz von Bytes b'Some ASCII'
b"Some ASCII"
bytes([119, 105, 107, 105])
Komplex unveränderlich Komplexe Zahl mit echten und imaginären Teilen 3+2.7j
3 + 2.7j
DICT veränderlich Assoziatives Array (oder Wörterbuch) von Schlüssel- und Wertpaaren; Kann gemischte Typen (Schlüssel und Werte) enthalten, Tasten müssen ein Hashabeltyp sein {'key1': 1.0, 3: False}
{}
Typen.ellipsistype unveränderlich Ein Ellipse Platzhalter, der als Index in verwendet werden soll Numpy Arrays ...
Ellipsis
schweben unveränderlich Doppelte Genauigkeit Schwimmpunktzahl. Die Präzision ist maschinell abhängig, aber in der Praxis wird allgemein als 64-Bit implementiert IEEE 754 Nummer mit 53 Bit Präzision.[104]

1.33333

Frozenset unveränderlich Ungeordnet einstellen, enthält keine Duplikate; kann gemischte Typen enthalten, wenn Hashable frozenset([4.0, 'string', True])
int unveränderlich Ganze Zahl unbegrenzter Größe[105] 42
aufführen veränderlich Aufführen, kann gemischte Typen enthalten [4.0, 'string', True]
[]
Typen.nonetyp unveränderlich Ein Objekt, das das Fehlen eines Wertes darstellt, oft genannt Null in anderen Sprachen None
Typen.notimplementedType unveränderlich Ein Platzhalter, von dem zurückgegeben werden kann überlastete Operatoren auf nicht unterstützte Operandenarten anzugeben. NotImplemented
Angebot unveränderlich Eine Folge von Zahlen, die üblicherweise für die Looping bestimmte Anzahl von Male in verwendet werden zum Schleifen[106] range(-1, 10)
range(10, -5, -2)
einstellen veränderlich Ungeordnet einstellen, enthält keine Duplikate; kann gemischte Typen enthalten, wenn Hashable {4.0, 'string', True}
set()
str unveränderlich A Zeichenkette: Sequenz von Unicode -Codepoints 'Wikipedia'
"Wikipedia"
"" "Überspannt mehrere Linien""" 
'' 'Überspannt mehrere Linien''' 
Tupel unveränderlich Kann gemischte Typen enthalten (4.0, 'string', True)
('single element',)
()

Rechenoperationen

Python hat die üblichen Symbole für arithmetische Operatoren (+, -, *, /), der Floor Divisionsbetreiber // und die Modulo -Betrieb % (wo der Rest negativ sein kann, z. 4% -3 == -2). Es hat auch ** zum Exponentiation, z.B. 5 ** 3 == 125 und 9 ** 0,5 == 3,0und ein Matrix -Multiplikations -Operator @ .[107] Diese Betreiber arbeiten wie in traditioneller Mathematik; mit dem gleichen Vorrangregeln, die Betreiber Infix (+ und - kann auch sein einstellig positive bzw. negative Zahlen darstellen).

Die Trennung zwischen Ganzzahlen führt zu schwimmenden Punktergebnissen. Das Verhalten der Teilung hat sich im Laufe der Zeit erheblich verändert:[108]

  • Aktuelle Python (d. H. Seit 3.0) veränderte sich / immer schwimmende Punktdivision zu sein, z. 5/2 == 2.5.
  • Die Bodenabteilung // Der Bediener wurde eingeführt. So 7 // 3 == 2, -7 // 3 == -3, 7,5 // 3 == 2.0 und -7.5 // 3 == -3.0. Hinzufügen from __future__ import division verursacht ein in Python 2.7 verwendetes Modul, um die Python 3.0 -Regeln für die Teilung zu verwenden (siehe oben).

In Python -Begriffen, / ist wahre Aufteilung (oder einfach Aufteilung), und // ist Bodenabteilung. / vor Version 3.0 ist Klassische Division.[108]

Wenn Sie in Richtung negativer Unendlichkeit von den meisten Sprachen unterscheiden, fügt sie Konsistenz hinzu. Zum Beispiel bedeutet dies, dass die Gleichung (a + b)//b == a//b + 1 ist immer wahr. Es bedeutet auch, dass die Gleichung b*(a//b) + a%b == a ist sowohl für positive als auch für negative Werte von gültig a. Wenn Sie jedoch die Gültigkeit dieser Gleichung aufrechterhalten a%b ist wie erwartet in der Half-Open-Intervall [0,, b), wo b ist eine positive ganze Zahl, sie muss in der Pause liegen (b, 0] wenn b ist negativ.[109]

Python bietet a runden Funktion für Rundung Ein Schwimmer zur nächsten Ganzzahl. Zum Krawatte, Python 3 verwendet rund zu gleichmäßig: Runde (1,5) und Runde (2,5) beide produzieren 2.[110] Versionen vor 3 verwendet rund-away-from-null: Runde (0,5) ist 1.0, Runde (-0,5) ist –1.0.[111]

Python ermöglicht Boolesche Ausdrücke mit mehreren Gleichstellungsbeziehungen in einer Weise, die mit der allgemeinen Verwendung in der Mathematik übereinstimmt. Zum Beispiel der Ausdruck a <b <c Tests, ob a ist weniger als b und b ist weniger als c.[112] C-abgeleitete Sprachen interpretieren diesen Ausdruck anders: In C würde der Ausdruck zuerst bewertet a <b, was zu 0 oder 1 führt, und dieses Ergebnis würde dann verglichen werden c.[113]

Python verwendet willkürliche Präzisionsarithmetik Für alle Ganzzahloperationen. Das Dezimal Geben Sie/Klasse in die Dezimal Modul liefert Dezimalerschwimmpunktzahlen zu einer vordefinierten willkürlichen Präzision und mehreren Rundungsmodi.[114] Das Fraktion Klasse in der Brüche Das Modul bietet eine willkürliche Genauigkeit für Rationale Zahlen.[115]

Aufgrund der umfangreichen Mathematikbibliothek von Python und der Drittanbieterbibliothek Numpy Dies erweitert die nativen Funktionen weiter, sondern wird häufig als wissenschaftliche Skriptsprache verwendet, um Probleme wie numerische Datenverarbeitung und -manipulation zu unterstützen.[116][117]

Programmierbeispiele

Hallo Welt Programm:

drucken('Hallo Welt!') 

Programm, um die zu berechnen Fakultät einer positiven Ganzzahl:

n = int(Eingang("Geben Sie eine Nummer ein, und das Fakultät wird gedruckt:"))  wenn n < 0:   heben ValueError("Sie müssen eine nicht negative Ganzzahl eingeben")  Fakultät = 1 zum i in Angebot(2, n + 1):   Fakultät *= i  drucken(Fakultät) 

Bibliotheken

Pythons große Standardbibliothek [118] Bietet Werkzeuge, die für viele Aufgaben geeignet sind, und wird üblicherweise als eine seiner größten Stärken bezeichnet. Für Anwendungen im Internet, viele Standardformate und Protokolle, wie z. MIME und Http sind unterstützt. Es enthält Module zum Erstellen Grafische Benutzeroberflächen, verbinden mit relationale Datenbanken, Generierung von Pseudorandomnummern, Arithmetik mit willkürlichen Präzisionsdezimalstellen,[119] manipulieren Reguläre Ausdrücke, und Unit -Tests.

Einige Teile der Standardbibliothek werden durch Spezifikationen abgedeckt - zum Beispiel die Webserver -Gateway -Schnittstelle (WSGI) Implementierung wsgiref folgt Pep 333[120]- aber die meisten werden durch ihren Code, ihre interne Dokumentation und ihre Code festgelegt Testsuiten. Da der größte Teil der Standardbibliothek jedoch plattformübergreifend Python-Code ist, müssen nur wenige Module für Variantenimplementierungen geändert oder neu schreiben.

Ab Juni 2022, das Python -Paketindex (PYPI), das offizielle Repository für die Python-Software von Drittanbietern, enthält über 380.000[121] Pakete mit einer Vielzahl von Funktionen, einschließlich:

Entwicklungsumgebungen

Die meisten Python -Implementierungen (einschließlich CPython) umfassen a Read -E -druck -Schleife (Repl), damit sie als funktionieren können Befehlszeile Interpreter für die Benutzer nacheinander Anweisungen eingeben und die Ergebnisse sofort empfangen.

Python kommt auch mit einem Integrierte Entwicklungsumgebung (IDE) genannt LEERLAUF, was anfängerorientierter ist.

Andere Muscheln, einschließlich LEERLAUF und IpythonFügen Sie weitere Fähigkeiten hinzu, wie eine verbesserte Autoabgeschlossenheit, Sitzungsstatusbindung und Satzstellung markieren.

Sowie Standarddesktop Integrierte Entwicklungsumgebungen, es gibt Webbrowser-basierte IDEs, einschließlich Sagemathfür die Entwicklung von Programmen für naturwissenschaftliche und mathematische; Pythonanywhere, eine Browser-basierte IDE- und Hosting-Umgebung; und Canopy -IDE, eine kommerzielle IDE, die betont Wissenschaftliches rechnen.[122]

Implementierungen

Referenzimplementierung

Cpython ist der Referenzimplementierung von Python. Es ist in C geschrieben, um die zu treffen C89 Standard (Python 3.11 verwendet C11[123]) mit mehreren Auswahl C99 Funktionen (mit späteren C -Versionen wird es als veraltet angesehen.[124][125] CPython enthält seine eigenen C-Erweiterungen, aber Erweiterungen von Drittanbietern sind nicht auf ältere C-Versionen beschränkt-e.G. Sie können mit implementiert werden mit C11 oder c ++.[126][127]) Es erstellt Python -Programme in ein Zwischenprodukt Bytecode[128] was dann von seiner ausgeführt wird virtuelle Maschine.[129] CPython ist mit einer großen Standardbibliothek verteilt, die in einer Mischung aus C und nativem Python geschrieben wurde. Für viele Plattformen, einschließlich Windows (beginnend mit Python 3.9 Windows 7 und 8;[130][131] Windows XP wurde bis Python 3.5 unterstützt) und am modernsten Unix-artig Systeme, einschließlich macOS (und Apple M1 Macs, seit Python 3.9.1, mit experimentellem Installateur) und inoffizieller Unterstützung für z. VMs.[132] Die Plattform -Portabilität war eine ihrer frühesten Prioritäten.[133] (Während der Entwicklung von Python 1 und 2 sogar OS/2 und Solaris wurden unterstützt,[134] Seitdem wurde die Unterstützung für viele Plattformen fallen gelassen.)

Andere Implementierungen

  • Pypy ist ein schneller, konformer Dolmetscher von Python 2.7 und 3.8.[135] [136] Es ist Just-in-Time-Compiler bringt eine signifikante Geschwindigkeitsverbesserung gegenüber CPython mit, aber einige in C geschriebene Bibliotheken können nicht damit verwendet werden.[137]
  • Stackloser Python ist eine signifikante Gabel von CPython, die implementiert Mikrotheads; es verwendet nicht das Rufen Sie Stack an Auf die gleiche Weise, sodass massiv gleichzeitige Programme ermöglichen. Pypy hat auch eine stacklose Version.[138]
  • Mikropython und Circuitpython Sind Python 3 -Varianten optimiert für Mikrocontroller, einschließlich Lego Mindstorms EV3.[139]
  • Pyston ist eine Variante der Python-Laufzeit, die eine Just-in-Time-Zusammenstellung verwendet, um die Ausführung von Python-Programmen zu beschleunigen.[140]
  • Cinder ist eine leistungsorientierte Gabel von CPython 3.8, die eine Reihe von Optimierungen enthält, einschließlich Bytecode-Inline-Caching, eifrige Bewertung von Coroutinen, eine Methode-A-Zeit Jit und ein experimenteller Bytecode -Compiler.[141]

Nicht unterstützte Implementierungen

Andere Just-in-Time-Python-Compiler wurden entwickelt, sind aber jetzt nicht unterstützt:

  • Google begann ein Projekt namens Under Swallow Im Jahr 2009, um den Python -Dolmetscher mit der Verwendung der Fünffache des Python zu beschleunigen Llvmund die Verbesserung seiner multithreading -Fähigkeit, Tausende von Kernen zu skalieren,[142] während gewöhnliche Implementierungen unter dem leiden Global Interpreter Lock.
  • Psyco ist ein abgebrochener gerade rechtzeitig spezialisiert Compiler, der sich in CPython integriert und Bytecode in den Maschinencode zur Laufzeit verwandelt. Der emittierte Code ist für bestimmte Spezialitäten spezialisiert Datentypen und ist schneller als der Standard -Python -Code. Psyco unterstützt nicht Python 2.7 oder höher.
  • Pys60 war ein Python 2 -Dolmetscher für Serie 60 Mobiltelefone veröffentlicht von Nokia Im Jahr 2005. implementierte viele der Module aus der Standardbibliothek und einige zusätzliche Module für die Integration in die Symbian Betriebssystem. Das Nokia N900 unterstützt auch Python mit Gtk Widget -Bibliotheken und ermöglicht, dass Programme auf dem Zielgerät geschrieben und ausgeführt werden.[143]

Cross-Compiler zu anderen Sprachen

Es gibt mehrere Compiler für hochrangige Objektsprachen mit uneingeschränkter Python, einer eingeschränkten Untergruppe von Python oder einer Sprache, die Python ähnelt wie die Quellsprache:

  • Brython,[144] Transcrypt[145][146] und Pyjs (Neueste Veröffentlichung im Jahr 2012) Python zu kompilieren zu JavaScript.
  • Cython kompiliert (ein Superset von) Python 2.7 bis C (während der resultierende Code auch mit Python 3 und z. B. C ++ verwendet werden kann).
  • Nuitka Kompiliert Python in C.[147]
  • Numba Verwendet LLVM, um eine Untergruppe von Python zum Maschinencode zu kompilieren.
  • Pythran erstellt eine Untergruppe von Python 3 zu C ++ (C ++ 11).[148][149][150]
  • Rpython Kann mit C zusammengestellt werden und wird verwendet, um den PYPY -Dolmetscher von Python zu bauen.
  • Die Python → 11l → C ++ transpilierer[151] Kompiliert eine Untergruppe von Python 3 zu C ++ (C ++ 17).

Spezialisiert:

Ältere Projekte (oder nicht mit Python 3.x und der neuesten Syntax verwendet werden):

  • Google's Grumpy (neueste Veröffentlichung im Jahr 2017) transpilien Python 2 bis gehen.[152][153][154]
  • Ironpython Ermöglicht das Ausführen von Python 2.7 -Programmen (und eine Alpha, veröffentlicht im Jahr 2021, ist auch für "Python 3.4 erhältlich, obwohl Funktionen und Verhaltensweisen aus späteren Versionen enthalten sein können".[155]) Im Netz Gemeinsame Sprachlaufzeit.[156]
  • Jython Kompiliert Python 2.7 für Java -Bytecode und ermöglicht die Verwendung der Java -Bibliotheken aus einem Python -Programm.[157]
  • Pyrex (Neueste Veröffentlichung im Jahr 2010) und Häuten (Neueste Veröffentlichung im Jahr 2013) Compile zu C und C ++.

Leistung

Der Leistungsvergleich verschiedener Python-Implementierungen für eine nicht numerische (kombinatorische) Arbeitsbelastung wurde bei Euroscipy '13 vorgestellt.[158] Die Leistung von Python im Vergleich zu anderen Programmiersprachen wird ebenfalls von einem Benchmarking durch Das Computer mit Computersprachen -Benchmarks Spiel.[159]

Entwicklung

Pythons Entwicklung wird weitgehend durch die durchgeführt Python Enhancement Vorschlag (PEP) Prozess, der primäre Mechanismus für die Vorschläge der neuen Funktionen, das Sammeln von Community -Input zu Themen und das Dokumentieren von Python -Designentscheidungen.[160] Der Python -Codierungsstil ist in Pep 8 bedeckt.[161] Hervorragende Peps werden von der Python -Community und dem Lenkungsrat überprüft und kommentiert.[160]

Die Verbesserung der Sprache entspricht der Entwicklung der CPython -Referenzimplementierung. Die Mailingliste Python-dev ist das primäre Forum für die Entwicklung der Sprache. Spezifische Themen werden in der erläutert Zusammenfassen Bug Tracker veranstaltet bei Bugs.python.org.[162] Die Entwicklung fand ursprünglich auf einem statt selbst veranstaltet Quellcode-Repository ausgeführt Quecksilber, bis Python nachzog GitHub Im Januar 2017.[163]

Die Öffentlichkeitsfreigaben von CPython sind in drei Typen erhältlich, von denen ein Teil der Versionsnummer inkrementiert ist:

  • Rückwärts-inkompatible Versionen, bei denen der Code erwartet wird, dass er brechen und manuell sein muss portiert. Der erste Teil der Versionsnummer ist inkrementiert. Diese Veröffentlichungen erfolgen selten - die Version 3.0 wurde 8 Jahre nach 2.0 veröffentlicht. Laut Guido van Rossum ist eine Version 4.0 sehr unwahrscheinlich.[164]
  • Major- oder "Feature" -Sengine sind weitgehend mit der vorherigen Version kompatibel, führen jedoch neue Funktionen ein. Der zweite Teil der Versionsnummer wird erhöht. Beginnend mit Python 3.9 wird erwartet, dass diese Veröffentlichungen jährlich stattfinden.[165][166] Jede Hauptversion wird nach ihrer Veröffentlichung mehrere Jahre durch Fehlerbehebungen unterstützt.[167]
  • Bugfix -Veröffentlichungen,[168] Dies erfolgt keine neuen Funktionen, die etwa alle 3 Monate auftreten und hergestellt werden, wenn seit der letzten Veröffentlichung eine ausreichende Anzahl von Fehlern stromaufwärts behoben wurde. Sicherheitslücken werden auch in diesen Veröffentlichungen gepatcht. Der dritte und letzte Teil der Versionsnummer wird erhöht.[168]

Viele Alpha, Beta und Release-Kandidaten werden auch als Vorschau und zum Testen vor den endgültigen Veröffentlichungen veröffentlicht. Obwohl es für jede Version einen groben Zeitplan gibt, werden sie häufig verzögert, wenn der Code nicht fertig ist. Das Entwicklungsteam von Python überwacht den Zustand des Codes, indem er den großen ausführt Gerätetest Suite während der Entwicklung.[169]

Der Bürgermeister Akademische Konferenz auf Python ist Pycon. Es gibt auch spezielle Python -Mentoring -Programme wie z. Pyladies.

Python 3.10 veraltet wstr (In Python 3.12 entfernt werden; bedeutet Python -Erweiterungen[170] müssen bis dahin geändert werden),[171] und fügte hinzu Musteranpassung zur Sprache.[172]

API -Dokumentationsgeneratoren

Tools, die Dokumentation für die Python -API generieren können Pydoc (als Teil der Standardbibliothek erhältlich), Sphinx, PDOC und seine Gabeln, Doxygen und Graphviz, unter anderen.[173]

Benennung

Pythons Name stammt aus der britischen Comedy -Gruppe Monty Python, den Python -Schöpfer Guido Van Rossum genossen, während er die Sprache entwickelte. Monty Python -Referenzen treten häufig in Python Code und Kultur auf;[174] Zum Beispiel die Metasyntaktische Variablen Oft in der Python -Literatur verwendet werden Spam und Eier statt der traditionellen Foo und Bar.[174][175] Die offizielle Python -Dokumentation enthält auch verschiedene Verweise auf Monty Python -Routinen.[176][177]

Das Präfix Py- wird verwendet, um zu zeigen, dass etwas mit Python zusammenhängt. Beispiele für die Verwendung dieses Präfixes in Namen von Python -Anwendungen oder Bibliotheken enthalten Pygame, a Bindung von SDL zu Python (häufig verwendet, um Spiele zu erstellen); Pyqt und Pygtk, was binden Qt und gtk zu python jeweils; und Pypy, eine Python -Implementierung, die ursprünglich in Python geschrieben wurde.

Popularität

Seit 2003 hat Python konsequent die zehn beliebtesten Programmiersprachen in der Tiobe Programming Community Index wo ab Oktober 2021, es ist die beliebteste Sprache (bevor Java, und C).[178] Es wurde in den Jahren 2007, 2010, 2018 und 2020 (die einzige Sprache, die vier Mal tut[179]).[180]

Eine empirische Studie ergab, dass Skriptsprachen wie Python produktiver sind als herkömmliche Sprachen wie C und Java für Programmierprobleme, die eine String -Manipulation und -Suche in einem Wörterbuch betreffen, und stellte fest viel schlimmer als C oder C ++ ".[181]

Große Organisationen, die Python verwenden Wikipedia, Google,[182] Yahoo!,[183] Cern,[184] NASA,[185] Facebook,[186] Amazonas, Instagram,[187] Spotify,[188] und einige kleinere Einheiten mögen Ilm[189] und Ita.[190] Die Social News Networking -Site Reddit wurde hauptsächlich in Python geschrieben.[191]

Verwendet

Python angetrieben

Python kann als dienen Skriptsprache zum Web Applikationenz. B. über mod_wsgi für die Apache -Webserver.[192] Mit Webserver -Gateway -SchnittstelleEine Standard -API hat sich entwickelt, um diese Anwendungen zu erleichtern. Webrahmen wie Django, Pylonen, Pyramide, Turbuears, Web2py, Tornado, Flasche, Flasche und Zope Unterstützen Sie Entwickler bei der Gestaltung und Wartung komplexer Anwendungen. Pyjs und Ironpython Kann verwendet werden, um die clientseitige von AJAX-basierten Anwendungen zu entwickeln. Sqlalchemy kann als als verwendet werden Data Mapper zu einer relationalen Datenbank. Verdrehte ist ein Rahmen für die Programmkommunikation zwischen Computern und wird (zum Beispiel) von verwendet Dropbox.

Bibliotheken wie Numpy, Scipy, und Matplotlib Ermöglichen Sie den effektiven Einsatz von Python im wissenschaftlichen Computer,[193][194] mit spezialisierten Bibliotheken wie z. Biopython und Astropie Bereitstellung domänenspezifischer Funktionen. Sagemath ist ein Computeralgebra -System mit einer Notebook -Schnittstelle Programmierbar in Python: seine Bibliothek deckt viele Aspekte von ab Mathematik, einschließlich Algebra, Kombinatorik, Numerische Mathematik, Zahlentheorie, und Infinitesimalrechnung.[195] Opencv Hat Python -Bindungen mit einer Vielzahl von Funktionen für Computer Vision und Bildverarbeitung.[196]

Python wird üblicherweise in verwendet künstliche Intelligenz Projekte und maschinelles Lernprojekt mit Hilfe von Bibliotheken wie Tensorflow, Keras, Pytorch, und Scikit-Learn.[197][198][199][200] Als Skriptsprache mit a Modulare Architektur, einfache Syntax und reiche Textverarbeitungswerkzeuge, Python wird häufig verwendet Verarbeitung natürlicher Sprache.[201]

Python kann auch verwendet werden, um Spiele mit Bibliotheken wie zu erstellen, z. B. Pygame, was 2D -Spiele machen kann.

Python wurde erfolgreich in viele Softwareprodukte als Skriptsprache eingebettet, auch in Finite -Elemente -Methode Software wie Abaqus, 3D -parametrische Modellierer mögen Freecad, 3D -Animationspakete wie 3ds max, Mixer, Kino 4d, Lichtwelle, Houdini, Maya, modo, MotionBuilder, Softimage, der visuelle Effektkompositor Nuke, 2D -Bildgebungsprogramme mögen Gimp,[202] Inkscape, Scribus und Paint Shop Pro,[203] und musikalische Notation Programme wie ScoreWriter und Capella. GNU -Debugger verwendet Python als Hübscher Drucker um komplexe Strukturen wie C ++ - Behälter zu zeigen. Esri Fördert Python als die beste Wahl, um Skripte zu schreiben Arcgis.[204] Es wurde auch in mehreren Videospielen verwendet,[205][206] und wurde als erster der drei verfügbaren übernommen Programmiersprachen in Google App Engine, die anderen beiden sein Java und gehen.[207]

Viele Betriebssysteme umfassen Python als Standardkomponente. Es versendet mit den meisten Linux -Verteilungen,[208] Amigaos 4 (mit Python 2.7), Freebsd (als Paket), Netbsd, und OpenBSD (als Paket) und kann aus der Befehlszeile (Terminal) verwendet werden. Viele Linux -Verteilungen verwenden in Python geschriebene Installateure: Ubuntu verwendet die Allgegenwart Installateur, während Red Hat Linux und Fedora Linux Verwenden Sie das Anakonda Installateur. Gentoo Linux verwendet Python in seinem Paketverwaltungssystem, Portage.

Python wird ausgiebig in der verwendet Informationssicherheit Industrie, einschließlich der Exploit -Entwicklung.[209][210]

Die meisten von den Zucker Software für die Ein Laptop pro Kind Xo, jetzt[wenn?] entwickelt bei Zuckerlabors, ist in Python geschrieben.[211] Das Raspberry Pi Single-Board-Computer Das Projekt hat Python als Hauptsprache der Benutzerprogrammierung übernommen.

Libreoffice Beinhaltet Python und beabsichtigt, Java durch Python zu ersetzen. Der Python -Skriptanbieter ist eine Kernfunktion[212] Seit Version 4.0 vom 7. Februar 2013.

Von Python beeinflusste Sprachen

Pythons Design und Philosophie haben viele andere Programmiersprachen beeinflusst:

  • Boo Verwendet die Eindrücke, eine ähnliche Syntax und ein ähnliches Objektmodell.[213]
  • Kobra Verwendet Einrückung und eine ähnliche Syntax und deren Anerkennung Dokument listet Python zuerst unter Sprachen auf, die es beeinflussten.[214]
  • CoffeeScript, Eine Programmiersprache, die mit JavaScript über die Python-inspirierte Syntax enthält.
  • ECMaskript/JavaScript geliehene Iteratoren und Generatoren Aus Python.[215]
  • Gdscript, eine Skriptsprache, die Python sehr ähnlich ist, die in die integriert ist Godot Game Engine.[216]
  • gehen ist für die "Geschwindigkeit der Arbeit in einer dynamischen Sprache wie Python" konzipiert.[217] und teilt die gleiche Syntax zum Schneiden von Arrays.
  • Groovig war motiviert durch den Wunsch, die Python -Designphilosophie zu bringen Java.[218]
  • Julia wurde entwickelt, um "für die allgemeine Programmierung als Python genauso verwendbar zu sein".[27]
  • Nim Verwendet Einrückung und ähnliche Syntax.[219]
  • RubinSchöpfer, Yukihiro Matsumoto, hat gesagt: "Ich wollte eine Skriptsprache, die mächtiger war als Perl und objektorientierter als Python. Deshalb habe ich mich entschlossen, meine eigene Sprache zu entwerfen."[220]
  • SchnellEine von Apple entwickelte Programmiersprache hat eine python-inspirierte Syntax.[221]

Die Entwicklungspraktiken von Python wurden auch von anderen Sprachen emuliert. Beispielsweise wird auch die Praxis, ein Dokument zu verlangen Tcl,[222] Erlang,[223] und schnell.[224]

Siehe auch

Verweise

  1. ^ "General Python FAQ - Python 3.9.2 Dokumentation". docs.python.org. Archiviert Aus dem Original am 24. Oktober 2012. Abgerufen 28. März 2021.
  2. ^ "Python 0.9.1 Teil 01/21". Alt.Sources Archive. Archiviert vom Original am 11. August 2021. Abgerufen 11. August 2021.
  3. ^ "Python 3.10.5 ist verfügbar". 6. Juni 2022. Abgerufen 6. Juni 2022.
  4. ^ "Warum ist Python eine dynamische Sprache und auch eine stark typisierte Sprache - Python Wiki". Wiki.python.org. Archiviert vom Original am 14. März 2021. Abgerufen 27. Januar 2021.
  5. ^ "Pep 483 - Die Theorie des Typs tippt". Python.org. Archiviert vom Original am 14. Juni 2020. Abgerufen 14. Juni 2018.
  6. ^ "Test - Regressionstestpaket für Python - Python 3.7.13 Dokumentation". docs.python.org. Abgerufen 17. Mai 2022.
  7. ^ "Plattform - Zugriff auf die identifizierenden Daten der zugrunde liegenden Plattform - Python 3.10.4 Dokumentation". docs.python.org. Abgerufen 17. Mai 2022.
  8. ^ "Python herunterladen". Python.org. Archiviert Aus dem Original am 8. August 2018. Abgerufen 24. Mai 2021.
  9. ^ Dateierweiterung .Pyo wurde in Python 3.5 entfernt. Sehen Pep 0488 Archiviert 1. Juni 2020 bei der Wayback -Maschine
  10. ^ Holth, Moore (30. März 2014). "PEP 0441 - Unterstützung der Python -Zip -Anwendungsunterstützung". Archiviert vom Original am 26. Dezember 2018. Abgerufen 12. November 2015.
  11. ^ "Starlark Sprache". Archiviert vom Original am 15. Juni 2020. Abgerufen 25. Mai 2019.
  12. ^ a b "Warum wurde Python in erster Linie geschaffen?". General Python FAQ. Python Software Foundation. Archiviert Aus dem Original am 24. Oktober 2012. Abgerufen 22. März 2007.
  13. ^ "ADA 83 Referenzhandbuch (Erhöhung der Erklärung)". Archiviert Aus dem Original am 22. Oktober 2019. Abgerufen 7. Januar 2020.
  14. ^ Kuchling, Andrew M. (22. Dezember 2006). "Interview mit Guido van Rossum (Juli 1998)". Amk.ca. Archiviert von das Original am 1. Mai 2007. Abgerufen 12. März 2012.
  15. ^ a b "Itertools - Funktionen, Iteratoren für effiziente Schleifen zu erstellen - Python 3.7.1 Dokumentation". docs.python.org. Archiviert vom Original am 14. Juni 2020. Abgerufen 22. November 2016.
  16. ^ Van Rossum, Guido (1993). "Eine Einführung in Python für UNIX/C -Programmierer". Verfahren der Nluug NajaarsConferentie (Dutch Unix Users Group). Citeseerx 10.1.1.38.2023. Obwohl das Design von C alles andere als ideal ist, ist sein Einfluss auf Python beträchtlich.
  17. ^ a b "Klassen". Das Python -Tutorial. Python Software Foundation. Archiviert Aus dem Original am 23. Oktober 2012. Abgerufen 20. Februar 2012. Es ist eine Mischung der Klassenmechanismen in C ++ und Modula-3
  18. ^ Lundh, Fredrik. "Ruf nach Objekt". effbot.org. Archiviert Aus dem Original am 23. November 2019. Abgerufen 21. November 2017. Ersetzen Sie "CLU" durch "Python", "Aufzeichnung" durch "Instanz" und "Prozedur" durch "Funktion oder Methode", und Sie erhalten eine ziemlich genaue Beschreibung des Objektmodells von Python.
  19. ^ Simionato, Michele. "Die Python 2.3 -Methodenauflösungreihenfolge". Python Software Foundation. Archiviert vom Original am 20. August 2020. Abgerufen 29. Juli 2014. Die C3 -Methode selbst hat nichts mit Python zu tun, da sie von Menschen erfunden wurde, die an Dylan arbeiten
  20. ^ Kuchling, A. M. "Funktionales Programmieren Howto". Python v2.7.2 Dokumentation. Python Software Foundation. Archiviert Aus dem Original am 24. Oktober 2012. Abgerufen 9. Februar 2012.
  21. ^ Schemenauer, Neil; Peters, Tim; Hetland, Magnus Lie (18. Mai 2001). "Pep 255 - einfache Generatoren". Vorschläge zur Verbesserung von Python. Python Software Foundation. Archiviert vom Original am 5. Juni 2020. Abgerufen 9. Februar 2012.
  22. ^ "Mehr Steuerflusswerkzeuge". Python 3 Dokumentation. Python Software Foundation. Archiviert Aus dem Original am 4. Juni 2016. Abgerufen 24. Juli 2015.
  23. ^ "Coffeescript". coffeeescript.org. Archiviert vom Original am 12. Juni 2020. Abgerufen 3. Juli 2018.
  24. ^ "Das Genie -Programmiersprache Tutorial". Archiviert vom Original am 1. Juni 2020. Abgerufen 28. Februar 2020.
  25. ^ "Perl und Python -Einflüsse in JavaScript". www.2ity.com. 24. Februar 2013. Archiviert vom Original am 26. Dezember 2018. Abgerufen 15. Mai 2015.
  26. ^ Rauschmayer, Axel. "Kapitel 3: Die Natur von JavaScript; Einflüsse". O'Reilly spricht JavaScript. Archiviert vom Original am 26. Dezember 2018. Abgerufen 15. Mai 2015.
  27. ^ a b "Warum wir Julia geschaffen haben". Julia Website. Februar 2012. Archiviert vom Original am 2. Mai 2020. Abgerufen 5. Juni 2014. Wir wollen etwas als nutzbar für die allgemeine Programmierung wie Python [...]
  28. ^ Ringteam (4. Dezember 2017). "Ring und andere Sprachen". Ring-Lang.net. Ring-Lang. Archiviert vom Original am 25. Dezember 2018. Abgerufen 4. Dezember 2017.
  29. ^ Bini, Ola (2007). Praktische Jruby on Rails Web 2.0 Projekte: Ruby auf Rails auf die Java -Plattform bringen. Berkeley: Apress. p.3. ISBN 978-1-59059-881-8.
  30. ^ Lattner, Chris (3. Juni 2014). "Chris Lattners Homepage". Chris Lattner. Archiviert vom Original am 25. Dezember 2018. Abgerufen 3. Juni 2014. Die schnelle Sprache ist das Produkt unermüdlicher Anstrengungen eines Teams von Sprachenexperten, Dokumentations-Gurus, Compiler-Optimierung Ninjas und einer unglaublich wichtigen internen Dogfooding-Gruppe, die Feedback zur Verfeinerung und den Schlachtstest-Ideen gab. Natürlich profitierte es auch stark von den Erlebnissen, die viele andere Sprachen auf diesem Gebiet hart erkannt haben und Ideen von Objective-C, Rost, Haskell, Ruby, Python, C#, CLU und viel zu vielen anderen zeichnen, um aufzulisten.
  31. ^ Kuhlman, Dave. "Ein Python -Buch: Beginn der Python, Advanced Python und Python Übungen". Abschnitt 1.1. Archiviert von das Original (PDF) am 23. Juni 2012.
  32. ^ "Über Python". Python Software Foundation. Archiviert Aus dem Original am 20. April 2012. Abgerufen 24. April 2012., Zweiter Abschnitt "Fans von Python verwenden den Ausdruck" Batterien enthalten ", um die Standardbibliothek zu beschreiben, die alles von der asynchronen Verarbeitung bis zu Post -Dateien abdeckt."
  33. ^ "Pep 206 - Python Advanced Library". Python.org. Archiviert vom Original am 5. Mai 2021. Abgerufen 11. Oktober 2021.
  34. ^ Rossum, Guido Van (20. Januar 2009). "Die Geschichte von Python: Eine kurze Zeitleiste von Python". Die Geschichte von Python. Archiviert vom Original am 5. Juni 2020. Abgerufen 5. März 2021.
  35. ^ Peterson, Benjamin (20. April 2020). "Python Insider: Python 2.7.18, Die letzte Veröffentlichung von Python 2". Python Insider. Archiviert vom Original am 26. April 2020. Abgerufen 27. April 2020.
  36. ^ "Stack Overflow Developer Survey 2020". Paketüberfluss. Archiviert vom Original am 2. März 2021. Abgerufen 5. März 2021.
  37. ^ "Der Entwickler -Ökosystem in 2020 Infografik". Jetbrains: Entwicklerwerkzeuge für Profis und Teams. Archiviert vom Original am 1. März 2021. Abgerufen 5. März 2021.
  38. ^ "Index | Tiobe - Das Unternehmen für Softwarequalität". www.tiobe.com. Archiviert vom Original am 25. Februar 2018. Abgerufen 2. Februar 2021. Python hat die Tiobe -Programmiersprache des Jahres ausgezeichnet! Dies ist zum vierten Mal in der Geschichte, was eine Aufzeichnung ist! Der Titel wird der Programmiersprache vergeben, die in einem Jahr die größte Popularität gewonnen hat.
  39. ^ "Pypl Popularität des Programmiersprachenindex". pypl.github.io. Archiviert Aus dem Original am 14. März 2017. Abgerufen 26. März 2021.
  40. ^ a b Venners, Bill (13. Januar 2003). "Die Herstellung von Python". Artima -Entwickler. Artima. Archiviert Aus dem Original am 1. September 2016. Abgerufen 22. März 2007.
  41. ^ Van Rossum, Guido (29. August 2000). "Setl (war: lauwarm über Range Literale)". Python-dev (Mailingliste). Archiviert Aus dem Original am 14. Juli 2018. Abgerufen 13. März 2011.
  42. ^ Van Rossum, Guido (20. Januar 2009). "Eine kurze Zeitleiste von Python". Die Geschichte von Python. Archiviert vom Original am 5. Juni 2020. Abgerufen 20. Januar 2009.
  43. ^ Fairchild, Carlie (12. Juli 2018). "Guido van Rossum, der von der Rolle als Pythons wohlwollender Diktator für das Leben zurückgeht". Linux Journal. Archiviert Aus dem Original am 13. Juli 2018. Abgerufen 13. Juli 2018.
  44. ^ "Pep 8100". Python Software Foundation. Archiviert vom Original am 4. Juni 2020. Abgerufen 4. Mai 2019.
  45. ^ "Pep 13 - Python Language Governance". Python.org. Archiviert vom Original am 27. Mai 2021. Abgerufen 25. August 2021.
  46. ^ Kuchling, A. M.; Zadka, Moshe (16. Oktober 2000). "Was ist neu in Python 2.0". Python Software Foundation. Archiviert Aus dem Original am 23. Oktober 2012. Abgerufen 11. Februar 2012.
  47. ^ Van Rossum, Guido (5. April 2006). "Pep 3000 - Python 3000". Vorschläge zur Verbesserung von Python. Python Software Foundation. Archiviert von das Original am 3. März 2016. Abgerufen 27. Juni 2009.
  48. ^ "2to3 - Automatisierte Python 2 bis 3 Codeübersetzung". docs.python.org. Archiviert vom Original am 4. Juni 2020. Abgerufen 2. Februar 2021.
  49. ^ "Pep 373 - Python 2.7 Release -Zeitplan". python.org. Archiviert Aus dem Original am 19. Mai 2020. Abgerufen 9. Januar 2017.
  50. ^ "PEP 466 - Verbesserungen der Netzwerksicherheit für Python 2.7.x". python.org. Archiviert vom Original am 4. Juni 2020. Abgerufen 9. Januar 2017.
  51. ^ "Sonnenuntergang Python 2". Python.org. Archiviert Aus dem Original am 12. Januar 2020. Abgerufen 22. September 2019.
  52. ^ "Pep 373 - Python 2.7 Release -Zeitplan". Python.org. Archiviert vom Original am 13. Januar 2020. Abgerufen 22. September 2019.
  53. ^ "Python Developer's Guide - Python Developer's Guide". devguide.python.org. Archiviert vom Original am 9. November 2020. Abgerufen 17. Dezember 2019.
  54. ^ Langa, łukasz (19. Februar 2021). "Python Insider: Python 3.9.2 und 3.8.8 sind jetzt erhältlich". Python Insider. Archiviert vom Original am 25. Februar 2021. Abgerufen 26. Februar 2021.
  55. ^ "Red Hat Customer Portal - Zugriff auf 24x7 -Unterstützung und -wissen". access.redhat.com. Archiviert vom Original am 6. März 2021. Abgerufen 26. Februar 2021.
  56. ^ "CVE-CVE-2021-3177". cve.mitre.org. Archiviert vom Original am 27. Februar 2021. Abgerufen 26. Februar 2021.
  57. ^ "CVE-CVE-2021-23336". cve.mitre.org. Archiviert vom Original am 24. Februar 2021. Abgerufen 26. Februar 2021.
  58. ^ Langa, łukasz (24. März 2022). "Python Insider: Python 3.10.4 und 3.9.12 sind jetzt außerhalb des Zeitplans erhältlich". Python Insider. Abgerufen 19. April 2022.
  59. ^ Langa, łukasz (16. März 2022). "Python Insider: Python 3.10.3, 3.9.11, 3.8.13 und 3.7.13 sind jetzt mit Sicherheitsinhalten verfügbar". Python Insider. Abgerufen 19. April 2022.
  60. ^ Langa, łukasz (17. Mai 2022). "Python Insider: Python 3.9.13 ist jetzt verfügbar". Python Insider. Abgerufen 21. Mai 2022.
  61. ^ The Cain Gang Ltd. "Python Metacklasse: Wer? Warum? Wann?" (PDF). Archiviert von das Original (PDF) am 30. Mai 2009. Abgerufen 27. Juni 2009.
  62. ^ "3.3. Spezielle Methodennamen". Die Python -Sprachreferenz. Python Software Foundation. Archiviert Aus dem Original am 15. Dezember 2018. Abgerufen 27. Juni 2009.
  63. ^ "PYDBC: Methodenvoraussetzungen, Methodenpostkonditionen und Klasseninvarianten für Python". Archiviert Aus dem Original am 23. November 2019. Abgerufen 24. September 2011.
  64. ^ "Verträge für Python". Archiviert vom Original am 15. Juni 2020. Abgerufen 24. September 2011.
  65. ^ "Pydatalog". Archiviert vom Original am 13. Juni 2020. Abgerufen 22. Juli 2012.
  66. ^ "Erweiterung und Einbettung des Python -Dolmetschers: Referenzzählungen". Docs.python.org. Archiviert Aus dem Original am 18. Oktober 2012. Abgerufen 5. Juni 2020. Da nutzt Python stark malloc () und frei()Es benötigt eine Strategie, um Speicherlecks sowie die Verwendung des befreiten Speichers zu vermeiden. Die gewählte Methode wird genannt Referenzzählung.
  67. ^ a b Hettinger, Raymond (30. Januar 2002). "Pep 289 - Generatorausdrücke". Vorschläge zur Verbesserung von Python. Python Software Foundation. Archiviert vom Original am 14. Juni 2020. Abgerufen 19. Februar 2012.
  68. ^ "6.5 iTertools - Funktionen, Iteratoren für effiziente Schleifen zu erstellen". Docs.python.org. Archiviert vom Original am 14. Juni 2020. Abgerufen 22. November 2016.
  69. ^ a b Peters, Tim (19. August 2004). "Pep 20 - Der Zen von Python". Vorschläge zur Verbesserung von Python. Python Software Foundation. Archiviert vom Original am 26. Dezember 2018. Abgerufen 24. November 2008.
  70. ^ Martelli, Alex; Ravenscroft, Anna; Ascher, David (2005). Python -Kochbuch, 2. Auflage. O'Reilly Media. p. 230. ISBN 978-0-596-00797-3. Archiviert vom Original am 23. Februar 2020. Abgerufen 14. November 2015.
  71. ^ "Python -Kultur". eBab. 21. Januar 2014. archiviert von das Original am 30. Januar 2014.
  72. ^ a b "General Python FAQ". Python v2.7.3 Dokumentation. Docs.python.org. Archiviert Aus dem Original am 24. Oktober 2012. Abgerufen 4. Juni 2020.
  73. ^ "15 Wege Python ist eine kraftvolle Kraft im Web". Archiviert von das Original am 11. Mai 2019. Abgerufen 3. Juli 2018.
  74. ^ "8.18. Pprint - Daten Pretty Printer - Python 3.8.3 Dokumentation". docs.python.org. Archiviert vom Original am 22. Januar 2021. Abgerufen 4. Juni 2020.
  75. ^ Clark, Robert (26. April 2019). "Wie man pythonisch ist und warum Sie sich interessieren sollten". Mittel. Archiviert vom Original am 13. August 2021. Abgerufen 20. Januar 2021.
  76. ^ "Codestil - Der Anhänger -Leitfaden für Python". docs.python-guide.org. Archiviert vom Original am 27. Januar 2021. Abgerufen 20. Januar 2021.
  77. ^ Goodger, David. "Code wie eine Pythonista: idiomatisches Python". Archiviert von das Original am 27. Mai 2014. Abgerufen 24. März 2009.
  78. ^ "Wie man wie eine Pythonista denkt". Archiviert von das Original am 23. März 2018. Abgerufen 24. März 2009.
  79. ^ "Ist Python eine gute Sprache für anfängliche Programmierer?". General Python FAQ. Python Software Foundation. Archiviert Aus dem Original am 24. Oktober 2012. Abgerufen 21. März 2007.
  80. ^ "Mythen über Einrückung in Python". SecNetix.de. Archiviert von das Original am 18. Februar 2018. Abgerufen 19. April 2011.
  81. ^ Guttag, John V. (12. August 2016). Einführung in die Berechnung und Programmierung mithilfe von Python: mit Anwendung zum Verständnis von Daten. MIT Press. ISBN 978-0-262-52962-4.
  82. ^ "Pep 8 - Stilhandbuch für Python -Code". Python.org. Archiviert Aus dem Original am 17. April 2019. Abgerufen 26. März 2019.
  83. ^ "8. Fehler und Ausnahmen - Python 3.12.0A0 -Dokumentation". docs.python.org. Abgerufen 9. Mai 2022.
  84. ^ "Highlights: Python 2.5". Python.org. Archiviert Aus dem Original am 4. August 2019. Abgerufen 20. März 2018.
  85. ^ Van Rossum, Guido (22. April 2009). "Schwanzrekursion Eliminierung". Neopythonic.blogspot.be. Archiviert Aus dem Original am 19. Mai 2018. Abgerufen 3. Dezember 2012.
  86. ^ Van Rossum, Guido (9. Februar 2006). "Sprachdesign löst nicht nur Rätsel". Artima -Foren. Artima. Archiviert Aus dem Original am 17. Januar 2020. Abgerufen 21. März 2007.
  87. ^ Van Rossum, Guido; EBY, Phillip J. (10. Mai 2005). "PEP 342 - Coroutinen über erweiterte Generatoren". Vorschläge zur Verbesserung von Python. Python Software Foundation. Archiviert vom Original am 29. Mai 2020. Abgerufen 19. Februar 2012.
  88. ^ "Pep 380". Python.org. Archiviert vom Original am 4. Juni 2020. Abgerufen 3. Dezember 2012.
  89. ^ "Aufteilung". python.org. Archiviert Aus dem Original am 20. Juli 2006. Abgerufen 30. Juli 2014.
  90. ^ "PEP 0465 - Ein dedizierter Infix -Operator für die Matrixmultiplikation". python.org. Archiviert vom Original am 4. Juni 2020. Abgerufen 1. Januar 2016.
  91. ^ "Python 3.5.1 Release und ChangeLog". python.org. Archiviert vom Original am 14. Mai 2020. Abgerufen 1. Januar 2016.
  92. ^ "Was ist neu in Python 3.8". Archiviert vom Original am 8. Juni 2020. Abgerufen 14. Oktober 2019.
  93. ^ "Kapitel 15. Ausdrücke - 15.21.1. Numerische Gleichstellungsoperatoren == und! =". Oracle Corporation. Archiviert vom Original am 7. Juni 2020. Abgerufen 28. August 2016.
  94. ^ "Kapitel 15. Ausdrücke - 15.21.3. Referenzgleichheit Operatoren == und! =". Oracle Corporation. Archiviert vom Original am 7. Juni 2020. Abgerufen 28. August 2016.
  95. ^ Van Rossum, Guido; Hettinger, Raymond (7. Februar 2003). "Pep 308 - Bedingte Ausdrücke". Vorschläge zur Verbesserung von Python. Python Software Foundation. Archiviert vom Original am 13. März 2016. Abgerufen 13. Juli 2011.
  96. ^ "4. Eingebaute Typen-Python 3.6.3RC1-Dokumentation". python.org. Archiviert vom Original am 14. Juni 2020. Abgerufen 1. Oktober 2017.
  97. ^ "5.3. Tupel und Sequenzen - Python 3.7.1RC2 -Dokumentation". python.org. Archiviert vom Original am 10. Juni 2020. Abgerufen 17. Oktober 2018.
  98. ^ a b "Pep 498 - Wörtliche Saiten -Interpolation". python.org. Archiviert vom Original am 15. Juni 2020. Abgerufen 8. März 2017.
  99. ^ "Warum muss 'Selbst' explizit in Methodendefinitionen und -aufrufen verwendet werden?". FAQ von Design und Geschichte. Python Software Foundation. Archiviert Aus dem Original am 24. Oktober 2012. Abgerufen 19. Februar 2012.
  100. ^ SWEIGART, AL (2020). Jenseits des Grundstücks mit Python: Best Practices zum Schreiben sauberer Code. Keine Stärkepresse. p. 322. ISBN 978-1-59327-966-0. Archiviert vom Original am 13. August 2021. Abgerufen 7. Juli 2021.
  101. ^ "Die Python Language Reference, Abschnitt 3.3. New Style- und Classic-Klassen, für Release 2.7.1". Archiviert von das Original am 26. Oktober 2012. Abgerufen 12. Januar 2011.
  102. ^ "Typ, der auf Python hinweist". Lwn.net. 24. Dezember 2014. Archiviert Aus dem Original am 20. Juni 2019. Abgerufen 5. Mai 2015.
  103. ^ "Mypy - Optionales statisches Typing für Python". Archiviert vom Original am 6. Juni 2020. Abgerufen 28. Januar 2017.
  104. ^ "15. Floating Point Arithmetic: Themen und Einschränkungen - Python 3.8.3 Dokumentation". docs.python.org. Archiviert vom Original am 6. Juni 2020. Abgerufen 6. Juni 2020. Fast alle Maschinen heute (November 2000) verwenden die IEEE-754-Gleitkomma-Arithmetik, und fast alle Plattformen karten Python auf IEEE-754 „Double Precision“.
  105. ^ Zadka, Moshe; Van Rossum, Guido (11. März 2001). "Pep 237 - Vereinheitliche lange ganze Zahlen und ganze Zahlen". Vorschläge zur Verbesserung von Python. Python Software Foundation. Archiviert vom Original am 28. Mai 2020. Abgerufen 24. September 2011.
  106. ^ "Eingebaute Typen". Archiviert vom Original am 14. Juni 2020. Abgerufen 3. Oktober 2019.
  107. ^ "PEP 465 - Ein dedizierter Infixbetreiber für die Matrixmultiplikation". python.org. Archiviert vom Original am 29. Mai 2020. Abgerufen 3. Juli 2018.
  108. ^ a b Zadka, Moshe; Van Rossum, Guido (11. März 2001). "PEP 238 - Wechseln des Divisionsbetreibers". Vorschläge zur Verbesserung von Python. Python Software Foundation. Archiviert vom Original am 28. Mai 2020. Abgerufen 23. Oktober 2013.
  109. ^ "Warum Pythons Integer Division Böden". 24. August 2010. Archiviert vom Original am 5. Juni 2020. Abgerufen 25. August 2010.
  110. ^ "runden", Die Python Standard Library, Release 3.2, §2: integrierte Funktionen, archiviert Aus dem Original am 25. Oktober 2012, abgerufen 14. August 2011
  111. ^ "runden", Die Python Standard Library, Release 2.7, §2: integrierte Funktionen, archiviert Aus dem Original am 27. Oktober 2012, abgerufen 14. August 2011
  112. ^ Beazley, David M. (2009). Python Wesentliche Referenz (4. Aufl.). p.66. ISBN 9780672329784.
  113. ^ Kernighan, Brian W.; Ritchie, Dennis M. (1988). Die C -Programmiersprache (2. Aufl.). p.206.
  114. ^ Batista, Facundo. "PEP 0327 - Dezimaldatentyp". Python.org. Archiviert vom Original am 4. Juni 2020. Abgerufen 26. September 2015.
  115. ^ "Was ist neu in Python 2.6 - Python v2.6.9 Dokumentation". docs.python.org. Archiviert Aus dem Original am 23. Dezember 2019. Abgerufen 26. September 2015.
  116. ^ "10 Gründe Python rockt für Forschung (und einige Gründe, warum dies nicht der Fall ist) - Hoyt Koepke". www.stat.washington.edu. Archiviert von das Original am 31. Mai 2020. Abgerufen 3. Februar 2019.
  117. ^ Shell, Scott (17. Juni 2014). "Eine Einführung in Python für wissenschaftliches Computer" (PDF). Archiviert (PDF) Aus dem Original am 4. Februar 2019. Abgerufen 3. Februar 2019.
  118. ^ Piotrowski, Przemyslaw (Juli 2006). "Erstellen Sie eine schnelle Webentwicklungsumgebung für Python -Serverseiten und Oracle". Oracle Technology Network. Orakel. Archiviert Aus dem Original am 2. April 2019. Abgerufen 12. März 2012.
  119. ^ Batista, Facundo (17. Oktober 2003). "PEP 327 - Dezimaldatentyp". Vorschläge zur Verbesserung von Python. Python Software Foundation. Archiviert vom Original am 4. Juni 2020. Abgerufen 24. November 2008.
  120. ^ EBY, Phillip J. (7. Dezember 2003). "PEP 333 - Python Web Server Gateway Interface v1.0". Vorschläge zur Verbesserung von Python. Python Software Foundation. Archiviert vom Original am 14. Juni 2020. Abgerufen 19. Februar 2012.
  121. ^ "ModuleCounts". ModuleCounts. 26. Juni 2022. Archiviert vom Original am 26. Juni 2022. Abgerufen 26. Juni 2022.
  122. ^ Begeistert, Baldachin. "Überdachung". www.enthought.com. Archiviert von das Original am 15. Juli 2017. Abgerufen 20. August 2016.
  123. ^ "Pep 7 - Stilhandbuch für C -Code | peps.python.org". peps.python.org. Abgerufen 28. April 2022.
  124. ^ "Mailman 3 Warum erlauben wir nicht die Verwendung von C11? - Python -dev - python.org". Mail.python.org. Archiviert vom Original am 14. April 2021. Abgerufen 1. März 2021.
  125. ^ "Ausgabe 35473: Intel Compiler (ICC) unterstützt C11 -Funktionen, einschließlich Atomics - Python Tracker, nicht vollständig". Bugs.python.org. Archiviert vom Original am 14. April 2021. Abgerufen 1. März 2021.
  126. ^ "4. Gebäude C- und C ++ - Erweiterungen - Python 3.9.2 Dokumentation". docs.python.org. Archiviert vom Original am 3. März 2021. Abgerufen 1. März 2021.
  127. ^ Van Rossum, Guido (5. Juni 2001). "PEP 7 - Stilhandbuch für C -Code". Vorschläge zur Verbesserung von Python. Python Software Foundation. Archiviert vom Original am 1. Juni 2020. Abgerufen 24. November 2008.
  128. ^ "CPython -Byte -Code". Docs.python.org. Archiviert vom Original am 5. Juni 2020. Abgerufen 16. Februar 2016.
  129. ^ "Python 2.5 Interna" (PDF). Archiviert (PDF) Aus dem Original am 6. August 2012. Abgerufen 19. April 2011.
  130. ^ "Changelog - Python 3.9.0 Dokumentation". docs.python.org. Archiviert vom Original am 7. Februar 2021. Abgerufen 8. Februar 2021.
  131. ^ "Python herunterladen". Python.org. Archiviert vom Original am 8. Dezember 2020. Abgerufen 13. Dezember 2020.
  132. ^ "Geschichte [vmspython]". www.vmspython.org. Archiviert vom Original am 2. Dezember 2020. Abgerufen 4. Dezember 2020.
  133. ^ "Ein Interview mit Guido van Rossum". Oreilly.com. Archiviert Aus dem Original am 16. Juli 2014. Abgerufen 24. November 2008.
  134. ^ "Python für andere Plattformen herunterladen". Python.org. Archiviert vom Original am 27. November 2020. Abgerufen 4. Dezember 2020.
  135. ^ "Pypy -Kompatibilität". Pypy.org. Archiviert vom Original am 6. Juni 2020. Abgerufen 3. Dezember 2012.
  136. ^ Team, The Pypy (28. Dezember 2019). "Herunterladen und installieren". Pypy. Abgerufen 8. Januar 2022.
  137. ^ "Geschwindigkeitsvergleich zwischen CPython und Pypy". Speed.pypy.org. Archiviert vom Original am 10. Mai 2021. Abgerufen 3. Dezember 2012.
  138. ^ "Stackless-Funktionen auf Anwendungsebene-Pypy 2.0.2 Dokumentation". Doc.pypy.org. Archiviert vom Original am 4. Juni 2020. Abgerufen 17. Juli 2013.
  139. ^ "Python-for-ev3". Lego -Ausbildung. Archiviert vom Original am 7. Juni 2020. Abgerufen 17. April 2019.
  140. ^ Yegulalp, Serdar (29. Oktober 2020). "Pyston kehrt von den Toten zurück, um Python zu beschleunigen". InfoWorld. Archiviert vom Original am 27. Januar 2021. Abgerufen 26. Januar 2021.
  141. ^ "Cinder: Instagrams leistungsorientierte Gabel von CPython". GitHub. Archiviert vom Original am 4. Mai 2021. Abgerufen 4. Mai 2021.
  142. ^ "Pläne zur Optimierung von Python". Google Project Hosting. 15. Dezember 2009. Archiviert Aus dem Original am 11. April 2016. Abgerufen 24. September 2011.
  143. ^ "Python auf dem Nokia N900". Stochastische Geometrie. 29. April 2010. Archiviert Aus dem Original am 20. Juni 2019. Abgerufen 9. Juli 2015.
  144. ^ "Brython". Brython.info. Archiviert Aus dem Original am 3. August 2018. Abgerufen 21. Januar 2021.
  145. ^ "Transcrypt - Python im Browser". transcrypt.org. Archiviert Aus dem Original am 19. August 2018. Abgerufen 22. Dezember 2020.
  146. ^ "Transcrypt: Anatomie eines Python zum JavaScript -Compiler". Infoq. Archiviert vom Original am 5. Dezember 2020. Abgerufen 20. Januar 2021.
  147. ^ "Nuitka Home | Nuitka Home". Nuitka.net. Archiviert vom Original am 30. Mai 2020. Abgerufen 18. August 2017.
  148. ^ Borderies, Olivier (24. Januar 2019). "Pythran: Python bei C ++ Geschwindigkeit!". Mittel. Archiviert vom Original am 25. März 2020. Abgerufen 25. März 2020.
  149. ^ "Pythran - Pythran 0.9.5 Dokumentation". pythran.readthedocs.io. Archiviert Aus dem Original am 19. Februar 2020. Abgerufen 25. März 2020.
  150. ^ "Archivierte Kopie" (PDF). Archiviert (PDF) vom Original am 18. April 2021. Abgerufen 20. Januar 2021.{{}}: CS1 Wartung: Archiviertes Kopie als Titel (Link)
  151. ^ Die Python → 11l → C ++ transpilierer
  152. ^ "Google/mürrisch". 10. April 2020. Archiviert vom Original am 15. April 2020. Abgerufen 25. März 2020 - über Github.
  153. ^ "Projekte". openSource.google. Archiviert vom Original am 24. April 2020. Abgerufen 25. März 2020.
  154. ^ Francisco, Thomas Claburn in San. "Googles mürrischer Code lässt Python gehen". www.theregister.com. Archiviert vom Original am 7. März 2021. Abgerufen 20. Januar 2021.
  155. ^ "Github - IronLuagage/Ironpython3: Implementierung von Python 3.x für .NET -Framework, das auf der dynamischen Sprachlaufzeit aufgebaut ist". GitHub. Archiviert vom Original am 28. September 2021.
  156. ^ "Ironpython.net /". ironpython.net. Archiviert vom Original am 17. April 2021.
  157. ^ "Jython FAQ". www.jython.org. Archiviert vom Original am 22. April 2021. Abgerufen 22. April 2021.
  158. ^ Murri, Riccardo (2013). Leistung von Python Runtimes auf einem nicht numerischen wissenschaftlichen Code. Europäische Konferenz über Python in Science (Euroscipy). Arxiv:1404.6388. Bibcode:2014ArXIV1404.6388m.
  159. ^ "Die Computersprache Benchmarks -Spiel". Archiviert vom Original am 14. Juni 2020. Abgerufen 30. April 2020.
  160. ^ a b Warschau, Barry; Hylton, Jeremy; Goodger, David (13. Juni 2000). "Pep 1 - Pep -Zweck und Richtlinien". Vorschläge zur Verbesserung von Python. Python Software Foundation. Archiviert vom Original am 6. Juni 2020. Abgerufen 19. April 2011.
  161. ^ "Pep 8 - Stilhandbuch für Python -Code". Python.org. Archiviert Aus dem Original am 17. April 2019. Abgerufen 26. März 2019.
  162. ^ Kanone, Brett. "Guido, einige Leute und eine Mailingliste: Wie Python entwickelt wird". python.org. Python Software Foundation. Archiviert von das Original am 1. Juni 2009. Abgerufen 27. Juni 2009.
  163. ^ "Python Developer's Guide - Python Developer's Guide". devguide.python.org. Archiviert vom Original am 9. November 2020. Abgerufen 17. Dezember 2019.
  164. ^ Hughes, Owen (24. Mai 2021). "Programmiersprachen: Warum Python 4.0 laut seinem Schöpfer niemals ankommen könnte". TechRepublic. Abgerufen 16. Mai 2022.
  165. ^ "PEP 602 - Jahresveröffentlichungszyklus für Python". Python.org. Archiviert vom Original am 14. Juni 2020. Abgerufen 6. November 2019.
  166. ^ "Veränderung der Python -Release -Cadence [lwn.net]". lwn.net. Archiviert Aus dem Original am 6. November 2019. Abgerufen 6. November 2019.
  167. ^ Norwitz, Neal (8. April 2002). "[Python-dev] Release-Zeitpläne (war Stabilität & Veränderung)". Archiviert Aus dem Original am 15. Dezember 2018. Abgerufen 27. Juni 2009.
  168. ^ a b Aahz; Baxter, Anthony (15. März 2001). "Pep 6 - Bug Fix Releases". Vorschläge zur Verbesserung von Python. Python Software Foundation. Archiviert vom Original am 5. Juni 2020. Abgerufen 27. Juni 2009.
  169. ^ "Python Buildbot". Python Developer's Guide. Python Software Foundation. Archiviert vom Original am 5. Juni 2020. Abgerufen 24. September 2011.
  170. ^ "1. Python mit C oder C ++ erweitern - Python 3.9.1 Dokumentation". docs.python.org. Archiviert vom Original am 23. Juni 2020. Abgerufen 14. Februar 2021.
  171. ^ "PEP 623 - WSTR von Unicode entfernen". Python.org. Archiviert vom Original am 5. März 2021. Abgerufen 14. Februar 2021.
  172. ^ "PEP 634 - Strukturmuster Matching: Spezifikation". Python.org. Archiviert vom Original am 6. Mai 2021. Abgerufen 14. Februar 2021.
  173. ^ "Dokumentationstools". Python.org. Archiviert vom Original am 11. November 2020. Abgerufen 22. März 2021.
  174. ^ a b "Witzen Sie Ihren Appetit". Das Python -Tutorial. Python Software Foundation. Archiviert Aus dem Original am 26. Oktober 2012. Abgerufen 20. Februar 2012.
  175. ^ "Soll ich in Python nach einer Rückkehr in einem If -Block sonst anders verwenden?". Paketüberfluss. Stapelaustausch. 17. Februar 2011. Archiviert Aus dem Original am 20. Juni 2019. Abgerufen 6. Mai 2011.
  176. ^ Lutz, Mark (2009). Python lernen: leistungsstarke objektorientierte Programmierung. O'Reilly Media, Inc. p. 17. ISBN 9781449379322. Archiviert Aus dem Original am 17. Juli 2017. Abgerufen 9. Mai 2017.
  177. ^ Fehily, Chris (2002). Python. Peachpit Press. p. xv. ISBN 9780201748840. Archiviert Aus dem Original am 17. Juli 2017. Abgerufen 9. Mai 2017.
  178. ^ "Tiobe Index". Tiobe - Das Unternehmen für Softwarequalität. Archiviert vom Original am 12. Oktober 2021. Abgerufen 13. Oktober 2021.
  179. ^ Blake, Troy (18. Januar 2021). "Tiobe Index für Januar 2021". Technologienachrichten und Informationen von Seniordba. Archiviert vom Original am 21. März 2021. Abgerufen 26. Februar 2021.
  180. ^ Tiobe Software Index (2015). "Tiobe Programming Community Index Python". Archiviert Aus dem Original am 7. September 2015. Abgerufen 10. September 2015.
  181. ^ Prechelt, Lutz (14. März 2000). "Ein empirischer Vergleich von C, C ++, Java, Perl, Python, Rexx und TCL" (PDF). Archiviert (PDF) Aus dem Original am 3. Januar 2020. Abgerufen 30. August 2013.
  182. ^ "Zitate über Python". Python Software Foundation. Archiviert vom Original am 3. Juni 2020. Abgerufen 8. Januar 2012.
  183. ^ "Organisationen, die Python verwenden". Python Software Foundation. Archiviert Aus dem Original am 21. August 2018. Abgerufen 15. Januar 2009.
  184. ^ "Python: Der heilige Programm des Programmierens". Cern Bulletin. CERN Publications (31/2006). 31. Juli 2006. Archiviert Aus dem Original am 15. Januar 2013. Abgerufen 11. Februar 2012.
  185. ^ Shafer, Daniel G. (17. Januar 2003). "Python optimiert Space Shuttle Mission Design". Python Software Foundation. Archiviert vom Original am 5. Juni 2020. Abgerufen 24. November 2008.
  186. ^ "Tornado: Das Echtzeit-Web-Framework von Facebook für Python-Facebook für Entwickler". Facebook für Entwickler. Archiviert Aus dem Original am 19. Februar 2019. Abgerufen 19. Juni 2018.
  187. ^ "Was macht Instagram: Hunderte von Instanzen, Dutzende von Technologien". Instagram Engineering. 11. Dezember 2016. Archiviert vom Original am 15. Juni 2020. Abgerufen 27. Mai 2019.
  188. ^ "Wie wir Python bei Spotify verwenden". Spotify Labs. 20. März 2013. Archiviert vom Original am 10. Juni 2020. Abgerufen 25. Juli 2018.
  189. ^ Fortenberry, Tim (17. Januar 2003). "Industrial Light & Magic läuft auf Python". Python Software Foundation. Archiviert vom Original am 6. Juni 2020. Abgerufen 11. Februar 2012.
  190. ^ Taft, Darryl K. (5. März 2007). "Python schlägt in Systeme". eweek.com. Ziff Davis Holdings. Archiviert vom Original am 13. August 2021. Abgerufen 24. September 2011.
  191. ^ Github-Reddit-Archive/Reddit: Historischer Code von Reddit.com., Das Reddit -Archive, archiviert vom Original am 1. Juni 2020, abgerufen 20. März 2019
  192. ^ "Nutzungsstatistik und Marktanteil von Python für Websites". 2012. Archiviert vom Original am 13. August 2021. Abgerufen 18. Dezember 2012.
  193. ^ Oliphant, Travis (2007). "Python für wissenschaftliches Computer". Computing in Wissenschaft und Ingenieurwesen. 9 (3): 10–20. Bibcode:2007cse ..... 9c..10o. Citeseerx 10.1.1.474.6460. doi:10.1109/MCSE.2007.58. S2CID 206457124. Archiviert vom Original am 15. Juni 2020. Abgerufen 10. April 2015.
  194. ^ Millman, K. Jarrod; Aivazis, Michael (2011). "Python für Wissenschaftler und Ingenieure". Computing in Wissenschaft und Ingenieurwesen. 13 (2): 9–12. Bibcode:2011cse .... 13b ... 9m. doi:10.1109/MCSE.2011.36. Archiviert Aus dem Original am 19. Februar 2019. Abgerufen 7. Juli 2014.
  195. ^ Wissenschaftserziehung mit Sagemath, Innovatives Computing in wissenschaftlicher Bildung, archiviert aus das Original am 15. Juni 2020, abgerufen 22. April 2019
  196. ^ "OpenCV: OpenCV-Python-Tutorials". docs.opencv.org. Archiviert vom Original am 23. September 2020. Abgerufen 14. September 2020.
  197. ^ Dean, Jeff; Monga, Rajat; et al. (9. November 2015). "Tensorflow: großes maschinelles Lernen auf heterogenen Systemen" (PDF). Tensorflow.org. Google -Forschung. Archiviert (PDF) Aus dem Original am 20. November 2015. Abgerufen 10. November 2015.
  198. ^ Piatetsky, Gregory. "Python isst bei R: Top Software für Analytics, Data Science, maschinelles Lernen im Jahr 2018: Trends und Analyse". Kdnuggets. Kdnuggets. Archiviert Aus dem Original am 15. November 2019. Abgerufen 30. Mai 2018.
  199. ^ "Wer verwendet Scikit-Learn?-Scikit-Learn 0.20.1 Dokumentation". scikit-learn.org. Archiviert vom Original am 6. Mai 2020. Abgerufen 30. November 2018.
  200. ^ Jouppi, Norm. "Google Superces maschinelles Lernaufgaben mit TPU -benutzerdefinierter Chip". Google Cloud Platform Blog. Archiviert Aus dem Original am 18. Mai 2016. Abgerufen 19. Mai 2016.
  201. ^ "Natural Language Toolkit - NLTK 3.5B1 -Dokumentation". www.nltk.org. Archiviert vom Original am 13. Juni 2020. Abgerufen 10. April 2020.
  202. ^ "Installateure für GIMP für Windows - häufig gestellte Fragen". 26. Juli 2013. archiviert von das Original am 17. Juli 2013. Abgerufen 26. Juli 2013.
  203. ^ "JASC PSP9Components". Archiviert von das Original am 19. März 2008.
  204. ^ "Über den Einstieg mit dem Schreiben von Geoprocessing -Skripten". Arcgis Desktop Hilfe 9.2. Umweltsysteme Forschungsinstitut. 17. November 2006. Archiviert vom Original am 5. Juni 2020. Abgerufen 11. Februar 2012.
  205. ^ CCP Porkbelly (24. August 2010). "Stackless Python 2.7". Eve Community Dev Blogs. CCP -Spiele. Archiviert Aus dem Original am 11. Januar 2014. Abgerufen 11. Januar 2014. Wie Sie vielleicht wissen, hat Eve die Programmiersprache, die als Stackless Python bekannt ist, im Kern.
  206. ^ Caudill, Barry (20. September 2005). "Modding Sid Meiers Zivilisation IV". Sid Meiers Zivilisation IV -Entwicklerblog. Firaxis -Spiele. Archiviert von das Original am 2. Dezember 2010. Wir haben drei Ebenen von Tools erstellt ... Das nächste Level bietet Python- und XML -Unterstützung und lässt Modder mit mehr Erfahrung die Spielwelt und alles darin manipulieren.
  207. ^ "Python Language Guide (v1.0)". Google -Dokumente listen Daten API v1.0 auf. Archiviert von das Original am 15. Juli 2010.
  208. ^ "Python Setup und Nutzung". Python Software Foundation. Archiviert vom Original am 17. Juni 2020. Abgerufen 10. Januar 2020.
  209. ^ "Immunität: Ich weiß, dass du sicher bist". Archiviert von das Original am 16. Februar 2009.
  210. ^ "Kernsicherheit". Kernsicherheit. Archiviert vom Original am 9. Juni 2020. Abgerufen 10. April 2020.
  211. ^ "Was ist Zucker?". Zuckerlabors. Archiviert Aus dem Original am 9. Januar 2009. Abgerufen 11. Februar 2012.
  212. ^ "4.0 Neue Funktionen und Korrekturen". Libreoffice.org. Die Dokumentstiftung. 2013. Archiviert Aus dem Original am 9. Februar 2014. Abgerufen 25. Februar 2013.
  213. ^ "Gotchas für Python -Benutzer". boo.codeehaus.org. Casehhaus Foundation. Archiviert von das Original am 11. Dezember 2008. Abgerufen 24. November 2008.
  214. ^ Esterbrook, Charles. "Anerkennung". cobra-language.com. Cobra -Sprache. Archiviert Aus dem Original am 8. Februar 2008. Abgerufen 7. April 2010.
  215. ^ "Vorschläge: Iteratoren und Generatoren [ES4 Wiki]". Wiki.ecmascript.org. Archiviert von das Original am 20. Oktober 2007. Abgerufen 24. November 2008.
  216. ^ "Häufig gestellte Fragen". Dokumentation der Godot Engine. Archiviert vom Original am 28. April 2021. Abgerufen 10. Mai 2021.
  217. ^ Kincaid, Jason (10. November 2009). "Google's Go: Eine neue Programmiersprache, die Python C ++ trifft.". Techcrunch. Archiviert Aus dem Original am 18. Januar 2010. Abgerufen 29. Januar 2010.
  218. ^ Strachan, James (29. August 2003). "Groovy - Die Geburt einer neuen dynamischen Sprache für die Java -Plattform". Archiviert von das Original am 5. April 2007. Abgerufen 11. Juni 2007.
  219. ^ Yegulalp, Serdar (16. Januar 2017). "NIM Sprache zeichnet sich aus dem Best of Python, Rost, Go und Lisp".. InfoWorld. Archiviert Aus dem Original am 13. Oktober 2018. Abgerufen 7. Juni 2020. Die Syntax von NIM erinnert stark an Python, da sie eingebaute Codeblöcke und einige derselben Syntax verwendet (wie die Art und Weise, wie/elif/dann/sonst Blöcke konstruiert werden).
  220. ^ "Ein Interview mit dem Schöpfer von Ruby". LinuxdevCenter.com. Archiviert Aus dem Original am 28. April 2018. Abgerufen 3. Dezember 2012.
  221. ^ Lattner, Chris (3. Juni 2014). "Chris Lattners Homepage". Chris Lattner. Archiviert vom Original am 22. Dezember 2015. Abgerufen 3. Juni 2014. Ich habe im Juli 2010 mit der Arbeit an der Swift -Programmiersprache begonnen. Ich habe einen Großteil der Grundsprachenstruktur implementiert, wobei nur wenige Menschen ihre Existenz kennen. Ein paar andere (erstaunliche) Leute haben Ende 2011 ernsthaft beigetragen, und es wurde zu einem wichtigen Schwerpunkt für die Apple Developer Tools Group im Juli 2013 [...] Ideen von Objective-C, Rust, Haskell, Ruby, Python, Zeichnen von Ideen von Objective-C, Rust, Haskell, Ruby, Python, C#, Clu und viel zu viele andere, um sie aufzulisten.
  222. ^ Kupries, Andreas; Fellows, Donal K. (14. September 2000). "Tipp Nr. 3: Tippformat". tcl.tk. TCL -Entwickler Xchange. Archiviert Aus dem Original am 13. Juli 2017. Abgerufen 24. November 2008.
  223. ^ Gustafsson, Per; Niskanen, Raimo (29. Januar 2007). "EEP 1: EEP -Zweck und Richtlinien". Erlang.org. Archiviert vom Original am 15. Juni 2020. Abgerufen 19. April 2011.
  224. ^ "Swift Evolution Process". Programmiersprache Evolution Repository auf GitHub. 18. Februar 2020. Archiviert vom Original am 27. April 2020. Abgerufen 27. April 2020.

Quellen

Weitere Lektüre

  • Downey, Allen B. (Mai 2012). Denken Sie an Python: Wie man wie ein Informatiker denkt (Version 1.6.6 ed.). ISBN 978-0-521-72596-5.
  • Hamilton, Naomi (5. August 2008). "Der A-Z der Programmiersprachen: Python". Computerwelt. Archiviert von das Original am 29. Dezember 2008. Abgerufen 31. März 2010.
  • Lutz, Mark (2013). Python lernen (5. Aufl.). O'Reilly Media. ISBN 978-0-596-15806-4.
  • Pilgrim, Mark (2004). Tauchen Sie in Python ein. Apress. ISBN 978-1-59059-356-1.
  • Pilgrim, Mark (2009). Tauchen Sie in Python 3 ein. Apress. ISBN 978-1-4302-2415-0.
  • Summerfield, Mark (2009). Programmierung in Python 3 (2. Aufl.). Addison-Wesley Professional. ISBN 978-0-321-68056-3.

Externe Links

.