Heim  >  Artikel  >  Backend-Entwicklung  >  Einführung in Python und Erste Schritte

Einführung in Python und Erste Schritte

巴扎黑
巴扎黑Original
2017-07-18 11:27:181614Durchsuche

15.07.2017, das ist mein erster Tag, an dem ich Python lerne.

Erstens ist Python derzeit eine sehr beliebte Entwicklungssprache und ihr Gründer ist Guido Van Rossum. Was die aktuelle Situation betrifft, so nimmt die Beliebtheit der Python-Sprache weiter zu und sie hat C# auf Platz vier überholt. Python steht für Eleganz, Einfachheit und Klarheit und ist eine ausgezeichnete und weit verbreitete Sprache.

1. Python ist eine interpretierte Sprache, die ihre Interpretation während der Ausführung ändert.

Erklären Sie zunächst den Compiler. Er kompiliert jede Anweisung des Quellprogramms in Maschinensprache und speichert sie als Binärdatei. Auf diese Weise wird die Maschine direkt kompiliert Wenn Sie die Binärdatei verwenden, um diese Datei auszuführen, ist die Ausführungsgeschwindigkeit sehr hoch. Der Interpreter ist anders. Wenn das Programm ausgeführt wird, interpretiert der Interpreter es nacheinander in die Maschinensprache, damit der Computer es ausführen kann. Die Ausführungsgeschwindigkeit ist also offensichtlich nicht so hoch wie die der kompilierten Datei. Dies liegt auch daran, dass der Computer den von uns geschriebenen Code nicht direkt erkennen und ausführen kann, sondern nur Computersprache (dh Binärdateien).

 Kompiliert vs. interpretiert

 Kompiliert

Vorteile: Der Compiler verfügt über einen Vorkompilierungsprozess zur Optimierung des Codes. Da die Kompilierung nur einmal erfolgt und zur Laufzeit nicht erneut kompiliert werden muss, ist die Ausführungseffizienz kompilierter Sprachen sehr hoch. Es kann direkt ohne das Gebietsschema ausgeführt werden.

Nachteile: Nachdem der Compiler das Programm kompiliert hat und der Code geändert wurde, muss er neu kompiliert werden. Beim Kompilieren wird der Maschinencode entsprechend der entsprechenden Betriebssystemumgebung generiert. Beim Transplantieren zwischen verschiedenen Betriebssystemen muss er in verschiedene ausführbare Dateien kompiliert werden.

Interpretiert:

Vorteile: Gute Plattformkompatibilität, kann in jeder Umgebung ausgeführt werden. Voraussetzung ist, dass der Interpreter (virtuelle Maschine) ist installiert. Da es dynamisch interpretiert wird, ist das Programm selbst sehr flexibel. Beim Ändern des Codes müssen Sie sich keine Gedanken über die direkte Ausführung machen. Es kann schnell bereitgestellt werden und Programmaktualisierungen erfordern keine Wartung.

Nachteile: Jedes Mal, wenn der Code ausgeführt wird, muss er von einem Prozess der dynamischen Interpretation begleitet werden. Die Leistung ist nicht so gut wie bei kompilierten Sprachen.

 

Warum Python statt anderer Sprachen?

C und Python, Java, C# usw.

C-Sprache: Der Code wird kompiliert, um Maschinencode zu erhalten, der direkt auf dem Prozessor ausgeführt wird steuert die Arbeit der CPU.

Andere Sprachen: Der Code wird kompiliert, um Bytecode zu erhalten, die virtuelle Maschine führt den Bytecode aus, konvertiert ihn in Maschinencode und führt ihn dann auf dem Prozessor aus

Python und C Python ist eine von C entwickelte Sprache

Zur Verwendung: Die Klassenbibliothek von Python ist vollständig und einfach zu verwenden. Wenn Sie dieselbe Funktion erreichen möchten, kann Python sie mit 10 Codezeilen lösen, während C Möglicherweise sind 100 Zeilen oder mehr erforderlich.
Aus Gründen der Geschwindigkeit: Im Vergleich zu C ist die Laufgeschwindigkeit von Python definitiv langsamer.

Python und Java, C# usw.

Zur Verwendung: Linux-Original Python, andere Sprachen haben es nicht; die oben genannten Sprachen sind verfügbar. Sehr umfangreiche Klassenbibliotheksunterstützung.
In Bezug auf die Geschwindigkeit: Python ist möglicherweise etwas langsamer.

Daher gibt es keine wesentliche Der Unterschied zwischen Python und anderen Sprachen besteht darin, dass er in einem bestimmten Bereich gut ist, über große Talente verfügt und vorgefasste Meinungen hat.

 

Typen von Python

Cpython
Die offizielle Version von Python, mit Die C-Sprachimplementierung, die am weitesten verbreitete CPython-Implementierung, konvertiert die Quelldatei (PY-Datei) in eine Bytecode-Datei (PYC-Datei) und führt sie dann auf der virtuellen Python-Maschine aus.

Jyhton
Java-Implementierung von Python. Jython kompiliert Python-Code dynamisch in Java-Bytecode und führt ihn dann auf der JVM aus.

IronPython
IronPython, eine C#-Implementierung von Python, kompiliert Python-Code in C#-Bytecode und führt ihn dann auf der CLR aus. (Ähnlich wie Jython)

PyPy (Spezial)
Von Python implementiertes Python, kompiliert Pythons Bytecode-Bytecode neu in Maschinencode.

RubyPython, Brython...


1. Niedrig- und Hochsprachen
Die ursprünglichen Computerprogramme wurden durch Sequenzen von 0 und 1 dargestellt. Programmierer verwendeten direkt Maschinenanweisungen ohne Übersetzung Um das Ergebnis zu erhalten, kann eine Stanzeingabe ausgeführt werden. Um das Gedächtnis zu erleichtern, waren Maschinenanweisungen später alle mnemonische Symbole, die eins zu eins den Maschinenanweisungen entsprachen, und so wurde die Assemblersprache geboren. Sowohl Maschinenanweisungen als auch Montageanweisungen sind maschinenorientiert und werden zusammenfassend als Niedrigsprachen bezeichnet. Da es sich um eine Mnemonik für Maschinenanweisungen für eine bestimmte Maschine handelt, kann die Assemblersprache nicht unabhängig von der Maschine (spezifischer CPU-Architektur) sein. Aber Assemblersprache muss auch in Maschinenanweisungen übersetzt werden, bevor sie ausgeführt werden kann. Daher gibt es auch eine Methode, Assemblersprache, die auf einer Maschine läuft, in Maschinenanweisungen zu übersetzen, die auf einer anderen Maschine laufen, und das ist die Cross-Assembly-Technologie.
Hochsprache ist eine Computersprache, die von der Perspektive des menschlichen logischen Denkens ausgeht. Sie muss auf einer bestimmten Maschine in Zielcode kompiliert werden Zur Ausführung einer Hochsprachenanweisung sind häufig mehrere Maschinenanweisungen erforderlich. Die Maschinenunabhängigkeit von Hochsprachen wird dadurch erreicht, dass Compiler unterschiedliche Objektcodes (oder Maschinenanweisungen) für verschiedene Maschinen generieren. Konkret: Inwieweit sollte eine Hochsprache kompiliert werden? Dies hängt mit der Kompilierungstechnologie zusammen. Sie kann in direkt ausführbaren Zielcode kompiliert oder in eine Zwischendarstellung kompiliert und dann von verschiedenen Maschinen abgerufen werden Zur Ausführung des Systems ist in dieser Situation normalerweise eine unterstützende Umgebung erforderlich, z. B. die Unterstützung eines Interpreters oder einer virtuellen Maschine. Java-Programme, die in Bytecode kompiliert und dann von virtuellen Maschinen auf verschiedenen Plattformen ausgeführt werden, sind gute Beispiele. Wenn man also sagt, dass eine Hochsprache nicht von der Maschine abhängt, bedeutet dies, dass das Programm selbst der Hochsprache auf verschiedenen Maschinen oder Plattformen unverändert bleibt und der vom Compiler kompilierte Zielcode an verschiedene Maschinen angepasst wird. In diesem Sinne können einige Assembler durch Cross-Assembly auch eine Portabilität zwischen verschiedenen Maschinen erreichen, die durch diesen Ansatz erzielte Portabilität ist jedoch weitaus weniger bequem und praktisch als bei Hochsprachen.

2. Kompilierung und Interpretation
Die Übersetzung und die Interpretation erfolgen getrennt Die Ausführung des Quellprogramms wird einmal abgeschlossen und es wird kein speicherbarer Objektcode generiert. Dies ist nur ein Schein. Der größte Unterschied zwischen den beiden ist: Bei der Interpretation und Ausführung liegt die Kontrolle beim Ausführen des Programms beim Interpreter und nicht beim Benutzerprogramm. Bei der Kompilierung und Ausführung liegt die Kontrolle beim Benutzerprogramm .
Erklärung verfügt über gute dynamische Eigenschaften und Portabilität. Beispielsweise kann sie den Typ von Variablen dynamisch ändern, das Programm ändern und während der Interpretation gute Debugging-Diagnoseinformationen einfügen Wenn das Programm auf ein anderes System übertragen wird, kann es ohne Änderungen auf dem System ausgeführt werden, auf das der Interpreter übertragen wird. Gleichzeitig weist der Interpreter auch große Mängel auf, z. B. eine geringe Ausführungseffizienz und eine große Speicherplatzbelegung, da nicht nur dem Benutzerprogramm Speicherplatz zugewiesen werden muss, sondern der Interpreter selbst auch wertvolle Systemressourcen belegt.

Der Compiler kompiliert jede Anweisung des Quellprogramms in Maschinensprache und speichert sie als Binärdatei. Auf diese Weise kann der Computer das Programm zur Laufzeit direkt in Maschinensprache ausführen ist sehr schnell; und der Interpreter übersetzt das Programm nur einzeln in die Maschinensprache, sodass die Ausführungsgeschwindigkeit nicht so hoch ist wie die des kompilierten Programms

Kompilierter Typ und interpretierter Typ Schauen wir uns zunächst den kompilierten Typ an. Tatsächlich ist er dasselbe wie die Assemblersprache: Es gibt auch ein Programm, das für die Übersetzung verantwortlich ist, um unseren Quellcode zu konvertieren und den entsprechenden ausführbaren Code zu generieren . . Um es professioneller auszudrücken: Dieser Vorgang wird als Kompilierung bezeichnet, und das für die Kompilierung verantwortliche Programm wird natürlich als Compiler bezeichnet. Wenn der von uns geschriebene Programmcode in einer Quelldatei enthalten ist, wird normalerweise direkt nach der Kompilierung eine ausführbare Datei generiert, die wir direkt ausführen können. Bei einem komplexeren Projekt verteilen wir den Code jedoch zur Erleichterung der Verwaltung normalerweise auf verschiedene Quelldateien und organisieren ihn in verschiedenen Modulen. Zu diesem Zeitpunkt wird beim Kompilieren jeder Datei eine Objektdatei (Objektdatei) anstelle der zuvor erwähnten ausführbaren Datei generiert. Im Allgemeinen entspricht die Kompilierung einer Quelldatei einer Zieldatei. Bei dem Inhalt dieser Zieldateien handelt es sich grundsätzlich um ausführbaren Code. Da es sich jedoch nur um einen Teil des gesamten Projekts handelt, können wir ihn noch nicht direkt ausführen. Nachdem alle Quelldateien kompiliert wurden, können wir diese halbfertigen Zieldateien schließlich in eine ausführbare Datei „packen“. Diese Arbeit wird von einem anderen Programm abgeschlossen, da dieser Prozess den ausführbaren Code zu umfassen scheint Daher wird es auch als Link bezeichnet, und das für die Verknüpfung verantwortliche Programm heißt ... es wird als Linker bezeichnet. Zusätzlich zum Verknüpfen von Zieldateien verfügt der Linker möglicherweise auch über verschiedene Ressourcen, z. B. Symboldateien, Sounddateien usw. Er ist auch für das Entfernen redundanter doppelter Codes zwischen Zieldateien usw. verantwortlich, also ... ist das auch ziemlich ermüdend . . Nachdem der Link abgeschlossen ist, können wir im Allgemeinen die gewünschte ausführbare Datei erhalten.
Oben haben wir kurz die Merkmale kompilierter Sprachen vorgestellt. Schauen wir uns nun interpretierte Sprachen an. Wörtlich bedeuten „kompilieren“ und „interpretieren“ beide „Übersetzung“, aber der Unterschied liegt im Zeitpunkt der Übersetzung. Wenn Sie zum Beispiel vorhaben, ein ausländisches Buch zu lesen und die Fremdsprache nicht beherrschen, können Sie einen Übersetzer finden und ihm genügend Zeit geben, das gesamte Buch von Anfang bis Ende zu übersetzen und dann das Buch in die Muttersprache zu übersetzen Die Version wird Ihnen zum Lesen gegeben; Sie können aber auch sofort den Übersetzer bitten, Ihnen beim Lesen zu helfen, und ihn Satz für Satz übersetzen lassen. Wenn Sie zu einem bestimmten Kapitel zurückkehren möchten, muss er es übersetzen Du schon wieder.
Zwei Methoden: Die erste entspricht dem gerade erwähnten kompilierten Typ: Konvertieren Sie den gesamten Code auf einmal in Maschinensprache und schreiben Sie ihn dann in eine ausführbare Datei Wir wollen sagen: Interpretierter Typ: Bevor das Programm ausgeführt wird, gibt es nur das Quellprogramm und kein ausführbares Programm, und jedes Mal, wenn das Programm eine bestimmte Anweisung des Quellprogramms ausführt, gibt es ein Shell-Programm namens Interpreter, um das zu konvertieren Quellcode in Binärcode. Kurz gesagt, er wird ständig interpretiert, ausgeführt, interpretiert, ausgeführt ... Daher sind interpretierte Programme untrennbar mit der Interpretation von Programmen verbunden. Beispielsweise ist das frühe BASIC eine klassisch interpretierte Sprache. Um ein BASIC-Programm auszuführen, müssen Sie die BASIC-Umgebung aufrufen und dann die Programmquelldatei laden und ausführen. Da bei einem interpretierten Programm das Programm immer in Form eines Quellcodes vorliegt, ist die Transplantation nahezu kein Problem, sofern ein entsprechender Interpreter vorhanden ist. Obwohl der Quellcode kompilierter Programme auch transplantiert werden kann, ist die Voraussetzung, dass er für verschiedene Systeme separat kompiliert werden muss. Bei komplexen Projekten ist dies tatsächlich eine zeitaufwändige Aufgabe, und es ist sehr wahrscheinlich, dass einige Details noch benötigt werden geändert. Darüber hinaus sparen interpretierte Programme den Kompilierungsschritt und sind sehr praktisch zum Ändern und Debuggen. Im Gegensatz zu kompilierten Programmen müssen Sie nicht geduldig auf den langen Kompilierungs-, Verknüpfungs- und Kompilierungsprozess warten jedes Mal, wenn Sie kleine Änderungen vornehmen. Allerdings hat alles Vor- und Nachteile. Da interpretierte Programme den Kompilierungsprozess in den Ausführungsprozess einbeziehen, ist es nicht überraschend, dass interpretierte Programme viel langsamer sind.
Kompilierter Typ und interpretierter Typ haben beide Vor- und Nachteile. Ersteres bietet eine schnelle Programmausführungsgeschwindigkeit und geringere Systemanforderungen unter den gleichen Bedingungen. Daher wird es bei der Entwicklung von Betriebssystemen, großen Anwendungen, Datenbanksystemen usw. wie C/C++, Pascal/Object Pascal (Delphi) verwendet. , VB und andere Basisprogramme können als kompilierte Sprachen betrachtet werden, während einige Webskripte, Serverskripte und Hilfsentwicklungsschnittstellen, wie z. B. Programme, die keine hohen Geschwindigkeitsanforderungen haben und bestimmte Anforderungen an die Kompatibilität zwischen verschiedenen Systemplattformen stellen, normalerweise verwendet werden interpretierte Sprachen wie Java und JavaScript, VBScript, Perl, Python usw.
Aber da kompilierte und interpretierte Sprachen ihre eigenen Vor- und Nachteile haben und gegensätzlich sind, neigen einige neue Sprachen dazu, die beiden zu kompromittieren, obwohl die Java-Sprache beispielsweise näher an den Merkmalen liegt Eine interpretierte Sprache weist vor der Ausführung nicht die Merkmale einer interpretierten Sprache auf. Der generierte Code ist ein Zwischencode zwischen dem Maschinencode und dem Java-Quellcode wird von der JVM (Javas virtuelle Maschinenplattform, die als Interpreter betrachtet werden kann) ausgeführt. Es behält nicht nur die hohen Abstraktions- und Portabilitätseigenschaften des Quellcodes bei, sondern hat auch den größten Teil der Vorkompilierungsarbeit des Quellcodes abgeschlossen, sodass es viel schneller ausgeführt wird als „rein interpretierte“ Programme. Für Sprachen wie VB6 (oder frühere Versionen) und C# generieren sie zwar oberflächlich betrachtet ausführbare .exe-Programmdateien, nach der Kompilierung von VB6 wird jedoch tatsächlich auch ein Zwischencode generiert, aber der Compiler fügt davor einen Absatz ein Rufen Sie automatisch den Code eines externen Interpreters auf (der Interpreter ist unabhängig vom vom Benutzer geschriebenen und in einer DLL-Datei des Systems gespeicherten Programm. Alle mit VB6 kompilierten ausführbaren Programme müssen ihn verwenden), um den eigentlichen Ausführungsprogrammkörper zu interpretieren. C# (und andere .net-Sprachcompiler) generieren .net-Zielcode, der tatsächlich vom .net-Interpretationssystem ausgeführt wird (genau wie JVM ist es auch eine Plattform für virtuelle Maschinen). Natürlich ist der .net-Zielcode bereits recht „low-level“ und näher an der Maschinensprache, daher wird er immer noch als kompilierte Sprache betrachtet und seine Portabilität ist nicht so leistungsfähig, wie Java behauptet, „kompiliert“ zu sein einmal, überall ausführen“. Und .net ist „einmal kodieren, überall kompilieren“. Haha, das gehört natürlich nicht zum Thema. Kurz gesagt: Mit der kontinuierlichen Weiterentwicklung von Designtechnologie und Hardware verschwimmen die Grenzen zwischen kompilierten und interpretierten Methoden zunehmend.

Dynamische Sprache und statische Sprache Normalerweise bezieht sich das, was wir dynamische Sprache und statische Sprache nennen, auf dynamische Typsprache und statische Typsprache.

(1) Dynamisch typisierte Sprache: Dynamisch typisierte Sprache bezieht sich auf eine Sprache, die nur zur Laufzeit eine Datentypprüfung durchführt. Mit anderen Worten, beim Programmieren in einer dynamisch typisierten Sprache ist dies immer der Fall Es ist nicht erforderlich, für eine Variable einen Datentyp anzugeben. Die Sprache zeichnet den Datentyp intern auf, wenn Sie einer Variablen zum ersten Mal einen Wert zuweisen. Python und Ruby sind typische dynamisch typisierte Sprachen, und verschiedene andere Skriptsprachen wie VBScript sind ebenfalls dynamisch typisierte Sprachen.

(2) Statische Typsprache: Die statische Typsprache ist genau das Gegenteil der dynamischen Typsprache. Ihr Datentyp wird während der Kompilierung überprüft, was bedeutet, dass alle Datentypen beim Schreiben deklariert werden müssen In Bezug auf den Datentyp von Variablen ist C/C++ ein typischer Vertreter statisch typisierter Sprachen. Zu den anderen statisch typisierten Sprachen gehören C#, JAVA usw.

Starke Typdefinitionssprache und schwache Typdefinitionssprache

(1) Starker Typ Definitionssprache: Die Sprache, die Datentypdefinitionen erzwingt. Mit anderen Worten: Sobald einer Variablen ein bestimmter Datentyp zugewiesen wird, bleibt sie immer dieser Datentyp, wenn sie nicht umgewandelt wird. Beispiel: Wenn Sie eine Ganzzahlvariable a definieren, kann das Programm a nicht als Zeichenfolgentyp behandeln. Eine stark typisierte Definitionssprache ist eine typsichere Sprache.

(2) Schwach typisierte Definitionssprache: eine Sprache, in der Datentypen ignoriert werden können. Es handelt sich um das Gegenteil einer stark typisierten Definitionssprache, bei der einer Variablen Werte unterschiedlicher Datentypen zugewiesen werden können.

Stark typisierte Definitionssprachen sind möglicherweise etwas langsamer als schwach typisierte Definitionssprachen, aber die Genauigkeit, die stark typisierte Definitionssprachen mit sich bringen, kann viele Fehler effektiv vermeiden. Darüber hinaus besteht absolut kein Zusammenhang zwischen „ob diese Sprache eine dynamische Sprache ist“ und „ob diese Sprache typsicher ist“! Zum Beispiel: Python ist eine dynamische Sprache, eine stark typisierte Definitionssprache (typsichere Sprache); VBScript ist eine dynamische Sprache, eine schwach typisierte Definitionssprache (typunsichere Sprache); (typsichere Sprache) Sprache).

Aus der obigen Einführung können wir schließen, dass Python eine dynamisch interpretierte und stark typisierte Definitionssprache ist. Was sind also die Vor- und Nachteile von Python, die durch diese Gene ermöglicht werden? Schauen wir weiter nach unten.

 Vor- und Nachteile von Python

Schauen wir uns zunächst die Vorteile an

  1. Die Positionierung von Python ist „elegant“, „klar“ und „einfach“, sodass Python-Programme immer einfach und leicht zu verstehen erscheinen Ich werde in Zukunft auch mehr lernen können, diese sehr, sehr komplexen Programme zu schreiben.

  2. Die Entwicklungseffizienz ist im Grunde sehr hoch, wenn Sie eine Funktion über den Computer realisieren möchten Die Python-Bibliothek verfügt über die entsprechende Funktion. Module werden direkt heruntergeladen und aufgerufen und dann auf Basis der Basisbibliothek entwickelt, was den Entwicklungszyklus erheblich verkürzt und eine Neuerfindung des Rades vermeidet.

  3. Hochsprache – Wenn Sie ein Programm in Python schreiben, müssen Sie nicht über Dinge auf niedriger Ebene nachdenken, wie zum Beispiel die Verwaltung des verwendeten Speichers von Ihrem Programm. Details

  4. Portabilität – Aufgrund seiner Open-Source-Natur wurde Python auf viele Plattformen portiert (mit Modifikationen, damit es auf verschiedenen Plattformen funktionieren kann). Vorgesetzter). Wenn Sie die Verwendung systemabhängiger Funktionen sorgfältig vermeiden, können alle Ihre Python-Programme ohne Änderungen auf fast jeder Systemplattform auf dem Markt ausgeführt werden

  5. Skalierbarkeit – Wenn Sie Wenn Sie einen kritischen Teil Ihres Codes benötigen, um schneller zu laufen, oder möchten, dass bestimmte Algorithmen vertraulich bleiben, können Sie Teile Ihres Programms in C oder C++ schreiben und sie in Ihrem Python-Programm verwenden.

  6. Einbettbarkeit – Sie können Python in Ihr C/C++-Programm einbetten, um Ihren Programmbenutzern Skriptfunktionen bereitzustellen.

Schauen wir uns die Nachteile an:

  1. Langsame Geschwindigkeit, Python läuft schneller als C Die Sprache ist tatsächlich viel langsamer, sogar langsamer als JAVA. Daher ist dies auch der Hauptgrund, warum viele sogenannte Experten die Verwendung von Python verachten. Tatsächlich ist die hier erwähnte langsame Laufgeschwindigkeit für Benutzer jedoch nicht direkt erkennbar In den meisten Fällen muss dies mithilfe von Testtools widergespiegelt werden. Beispielsweise dauert die Ausführung eines Programms in C 0,1 Sekunden und in Python ist die Sprache C direkt zehnmal schneller. Das ist sehr übertrieben, aber man kann es nicht direkt passieren. Es kann mit bloßem Auge wahrgenommen werden, da die kleinste Zeiteinheit, die ein normaler Mensch wahrnehmen kann, etwa 0,15 bis 0,4 Sekunden beträgt, haha. Tatsächlich kann Python in den meisten Fällen die Geschwindigkeitsanforderungen Ihres Programms vollständig erfüllen, es sei denn, Sie möchten eine Suchmaschine schreiben, die extrem hohe Geschwindigkeitsanforderungen stellt. In diesem Fall wird natürlich empfohlen, C zur Implementierung zu verwenden.

  2. Der Code kann nicht verschlüsselt werden, da PYTHON eine interpretierte Sprache ist und ihr Quellcode in Textform gespeichert ist, aber ich glaube nicht, dass dies eine ist Nachteil: Wenn Ihr Projekt eine Verschlüsselung des Quellcodes erfordert, sollten Sie ihn gar nicht erst mit Python implementieren.

  3. Threads können das Problem mehrerer CPUs nicht ausnutzen. Das am meisten kritisierte Manko von GIL ist die Global Interpreter Lock. Dabei handelt es sich um ein Computertool, das von Programmierspracheninterpretern verwendet wird, um Threads zu synchronisieren, sodass immer nur ein Thread ausgeführt wird. Python-Threads sind native Threads des Betriebssystems. Es handelt sich um einen Pthread unter Linux und einen Win-Thread unter Windows. Die Ausführung des Threads wird vollständig vom Betriebssystem geplant. Ein Python-Interpreterprozess verfügt über einen Hauptthread und mehrere Threads zur Ausführung von Benutzerprogrammen. Selbst auf Multi-Core-CPU-Plattformen ist die parallele Ausführung von Multi-Threads aufgrund der Existenz von GIL verboten. Was die Kompromisslösung für dieses Problem betrifft, werden wir später in den Thread- und Prozesskapiteln ausführlich darauf eingehen.

Natürlich hat Python noch einige andere kleine Mängel, die ich hier nicht aufzählen möchte, ist, dass keine Sprache perfekt ist und es Dinge gibt, in denen es gut ist, und Dinge, in denen es nicht gut ist Es wird empfohlen, die Nachteile einer Sprache nicht mit den Vorteilen einer anderen Sprache zu vergleichen. Manchmal ist es ein Werkzeug, um die Ideen von Programmierern zu verwirklichen Manchmal ist es notwendig, ein Set-Lineal zu verwenden. Es ist die richtige Wahl, das entsprechende Werkzeug zu verwenden, um das zu tun, was es am besten kann. Viele Leute haben mich schon einmal gefragt, was besser ist, Shell oder Python? Ich habe geantwortet, dass Shell eine Skriptsprache ist, aber Python ist nicht nur eine Skriptsprache, sondern es gibt auch Leute, die sehr schlau sind und sagen, dass es nicht nötig ist, alles zu lernen, was Python kann , solange du gut genug bist, dann erwähnte ich, dass du Shell verwenden kannst, um Spiele wie Tetris zu schreiben. Die einzige Möglichkeit, mit SB zu streiten, wird dich auf das gleiche Niveau bringen wie er , und nutzen Sie dann ausreichend Erfahrung, um Sie niederzuschlagen.

Das obige ist der detaillierte Inhalt vonEinführung in Python und Erste Schritte. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Grundlegende Punkte in PythonNächster Artikel:Grundlegende Punkte in Python