Heim  >  Artikel  >  Backend-Entwicklung  >  Welche Python-Version eignet sich am besten für Neulinge?

Welche Python-Version eignet sich am besten für Neulinge?

青灯夜游
青灯夜游Original
2019-05-20 19:32:484611Durchsuche

Menschen, die Python lernen möchten, werden verwirrt sein, das heißt, Python hat derzeit zwei Versionen, Python2 und Python3. Welche der beiden Versionen sollte ich lernen?

Welche Python-Version eignet sich am besten für Neulinge?

Python3 und Python2 sind inkompatibel und die Unterschiede sind relativ groß. Python3 ist nicht abwärtskompatibel, aber die meisten Komponenten und Erweiterungen basieren auf Python2. Derzeit berücksichtigen die meisten praktischen Anwendungen Python 3 vorerst nicht und achten manchmal darauf, Code zu schreiben, der mit 2/3 kompatibel ist. Wenn Sie neuen Code hauptsächlich mit Python2 schreiben, sollten Sie die Möglichkeit einer zukünftigen Migration auf Python3 in Betracht ziehen. Laut Statistik verwenden derzeit 10 % Python 3; 20 % verwenden sowohl Python 2 als auch Python 3, wobei Python 2 häufiger verwendet wird;

Tatsächlich ist Python eine der am häufigsten verwendeten Software unter Linux, aber die meisten aktuellen Linux-Versionen verwenden immer noch Python2. Darüber hinaus gibt es unter Linux mehr Programme, die auf Python2 basieren, daher sollte Python3 ersetzt werden Python2 zu entwickeln und zum Mainstream zu machen, wird noch ein paar Jahre dauern. Wenn Sie immer noch Python 2 lernen, um einen Job zu finden, ist es nicht schwierig, nach dem Erlernen von Python 2 von Python 2 zu Python3 zu wechseln.

Was ist nach langem Gespräch der Unterschied zwischen Python2 und Python3?

1. Leistung

Py3.0 führt den Pystone-Benchmark 30 % langsamer aus als Py2.5. Guido glaubt, dass Py3.0 großen Optimierungsspielraum bietet und gute Optimierungsergebnisse bei String- und Integer-Operationen erzielen kann.

Die Leistung von Py3.1 ist 15 % langsamer als die von Py2.5, und es gibt noch viel Raum für Verbesserungen.

2. Codierung

Verwenden Sie !=

2) Entfernen Sie „`“ und verwenden Sie repr()

3) Fügen Sie as und with-Schlüsselwörter hinzu, sowie True, False, None

4) Ganzzahldivision gibt eine Gleitkommazahl zurück, verwenden Sie bitte //

5) Fügen Sie eine nichtlokale Anweisung hinzu. Mit noclocal x können Sie periphere (nicht globale) Variablen direkt zuweisen

6) Entfernen Sie die print-Anweisung und fügen Sie die print()-Funktion hinzu, um dieselbe Funktion zu erreichen. Das Gleiche gilt für die exec-Anweisung, die in die Funktion exec() geändert wurde

7) Das Verhalten des sequentiellen Operators, wie z. B. x

8) Die Eingabefunktion wurde geändert, raw_input wurde gelöscht und durch Eingabe ersetzt:

9) Das Entpacken der Tupelparameter wurde durchgeführt ENTFERNT. Sie können die Funktion nicht wie def(a, (b, c)):pass definieren

10) Neue oktale Wortvariable, die Funktion oct() wird entsprechend geändert.

11) Binäre Literale und bin()-Funktion hinzugefügt

12) Erweitertes iterierbares Entpacken. In Py3.

13) Neues super(), Sie können keine Parameter mehr an super() übergeben,

14) Neue Metaklassensyntax:

15) Unterstützt Klassendekorateur.

4. Strings und Byte-Strings

1) Jetzt gibt es nur noch einen String-Typ, str, aber er ist fast derselbe wie die 2.x-Version von Unicode.

2) Informationen zu Byte-Strings finden Sie im 2. Punkt von „Datentyp“

5 Datentyp

1) Py3.X hat den langen Typ entfernt. Jetzt gibt es nur einen Ganzzahltyp – int, aber er verhält sich wie long

in Version 2. 1) Einführung abstrakter Basisklassen (Abstract Base Classes, ABCs).

2) Containerklassen und Iteratorklassen sind ABCs, daher gibt es im Cellections-Modul viel mehr Typen als in Py2.5.

3) Die next()-Methode des Iterators wurde in __next__() umbenannt und die integrierte Funktion next() wurde hinzugefügt, um den Iterator aufzurufen

4) @abstractmethod und @ waren Die hinzugefügte abstrakte Eigenschaft verfügt über zwei Dekoratoren, was das Schreiben abstrakter Methoden (Eigenschaften) erleichtert.

7. Ausnahmen

1) Alle Ausnahmen werden von BaseException und StardardError geerbt

2) Das Sequenzverhalten und das .message-Attribut der Ausnahmeklasse werden entfernt

3) Verwenden Sie raise Exception(args) anstelle von raise Exception, args-Syntax

4) Syntaxänderungen zum Abfangen von Ausnahmen, das Schlüsselwort as wird eingeführt, um Ausnahmeinstanzen zu identifizieren

5) Exception Kette, da __context__ in Version 3.0a1 nicht implementiert ist

8 Moduländerungen

1) Das cPickle-Modul wurde entfernt und stattdessen kann das pickle-Modul verwendet werden. Irgendwann werden wir ein transparentes und effizientes Modul haben.

2) Imageop-Modul entfernt

3) Audiodev, Bastion, bsddb185, Ausnahmen, Linuxaudiodev, md5, imeWriter, mimify, popen2, rexec, sets, sha, stringold, strop, sunaudiodev, entfernt Timing- und xmllib-Module

4) bsddb-Modul entfernt (separat veröffentlicht, verfügbar bei Python „bindings“ für Oracle Berkeley DB)


5) neues Modul entfernt

6) Die Die Funktionen os.tmpnam() und os.tmpfile() wurden in das tmpfile-Modul verschoben

7) Das tokenize-Modul funktioniert jetzt mit Bytes. Der Haupteinstiegspunkt ist nicht mehr generic_tokens, sondern tokenize.tokenize()

9 Andere

1) xrange() wird in range() umbenannt, um a zu erhalten In der Liste müssen Sie

2) Bytes-Objekte explizit aufrufen, und sie unterstützen auch nicht die Methoden b.lower(), b.strip() und b.split()

3) zip (), map() und filter() geben beide Iteratoren zurück.

4) string.letters und zugehörige .lowercase und .uppercase werden entfernt, bitte verwenden Sie stattdessen string.ascii_letters usw.

5) Wenn x < y nicht verglichen werden kann, wird eine TypeError-Ausnahme ausgelöst

6) Mitglieder der __getslice__-Serie werden verlassen.

7) Die Dateiklasse wird aufgegeben

Das obige ist der detaillierte Inhalt vonWelche Python-Version eignet sich am besten für Neulinge?. 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