Heim  >  Artikel  >  Backend-Entwicklung  >  Vergleich der Versionen und Codierungen von Python 2 und Python 3

Vergleich der Versionen und Codierungen von Python 2 und Python 3

高洛峰
高洛峰Original
2017-02-17 11:52:571085Durchsuche

1. Versionsvergleich

Als Erstes ist zu sagen, dass Python-Versionen derzeit hauptsächlich in zwei Kategorien unterteilt sind:

Die Python 2.x-Version heißt Python2: Sie ist derzeit die am weitesten verbreitet, wie z. B. Python 2.7.3.

Die Python 3.x-Version heißt Python3: Es handelt sich um die neueste Version, z. B. Python 3.1. Langfristig gesehen kann es als Zukunftstrend angesehen werden.

[Der Unterschied zwischen Python2 und Python3]

1. Von Python2 zu Python3 haben sich viele grundlegende Funktionsschnittstellen geändert und sogar einige Bibliotheken oder Funktionen wurden entfernt und umbenannt

Python2 und Python3, die Schnittstellen haben sich in vielen grundlegenden und am häufigsten verwendeten Funktionen geändert. Die typischste ist die am häufigsten verwendete Druckfunktion.

2. In Bezug auf die Unterstützung von Drittanbieterbibliotheken wird derzeit Python2 am besten unterstützt, während Python3 nicht ausreichend unterstützt wird.

Einer der Gründe, warum Python leistungsstark ist, ist, dass es viele davon gibt Die Funktion ist in Bibliotheken von Drittanbietern sehr leistungsstark.

Derzeit bieten viele Bibliotheken von Drittanbietern für Python nur Python2 an.

Oder selbst wenn Python3 bereitgestellt wird, ist es möglicherweise nicht sehr ausgereift.

2. Codierungsvergleich

In Python gibt es im Allgemeinen nur zwei Kategorien von Zeichen, unabhängig davon, ob es sich um Python2 oder Python3 handelt:

  1. Universell Unicode-Zeichen;

  2. (Unicode-codierte) Zeichen eines bestimmten Codierungstyps, z. B. UTF-8, GBK und andere Zeichentypen.

Zeichentyp in Python2:

  • str: codierte Bytesequenz

  • Unicode: Textzeichen vor der Kodierung

Zeichentyp in Python3:

  • str: Kodierte Unicode-Textzeichen

  • Bytes: Bytesequenz vor der Codierung

Wir können uns Zeichenfolgen mit zwei Zuständen vorstellen, dem Textstatus und dem Bytestatus (binär). Die beiden Zeichentypen in Python2 und Python3 entsprechen jeweils diesen beiden Zuständen und kodieren und dekodieren sich dann gegenseitig. Bei der Codierung geht es darum, eine Zeichenfolge in einen Bytecode umzuwandeln. Dabei handelt es sich um die interne Darstellung der Zeichenfolge. Bei der Dekodierung wird der Bytecode in eine Zeichenfolge umgewandelt und die Bits in Zeichen angezeigt.

In Python2 verfügen sowohl str als auch unicode über Methoden zum Kodieren und Dekodieren. Es wird jedoch nicht empfohlen, „encode“ für str und „decode“ für Unicode zu verwenden. Dies ist ein Fehler im Design von Python2. Python3 wurde optimiert. str verfügt nur über eine Codierungsmethode zum Konvertieren einer Zeichenfolge in einen Bytecode, und Bytes verfügt nur über eine Decodiermethode zum Konvertieren des Bytecodes in eine Textzeichenfolge.

Str und Unicode von Python2 sind beide Unterklassen von Basestring, sodass die beiden direkt verbunden werden können. In Python3 sind Bytes und Str zwei unabhängige Typen und können nicht gespleißt werden.

In Python2 sind normale Zeichen in Anführungszeichen str; der Codierungstyp der Zeichenfolge entspricht derzeit der Codierung, in der Ihre Python-Datei selbst gespeichert ist. Auf der gängigsten Windows-Plattform ist die Standardeinstellung GBK. In Python3 ist eine in einfache oder doppelte Anführungszeichen eingeschlossene Zeichenfolge bereits eine Zeichenfolge vom Typ Unicode.

Es gibt einige Voraussetzungen für die Kodierung von str:

  1. Die entsprechende Kodierung wurde am Anfang der Python-Datei deklariert

  2. Python-Datei Es wird tatsächlich mit dieser Kodierung gespeichert

  3. Die Kodierungstypen der beiden müssen gleich sein (z. B. sind beide UTF-8 oder beide sind GBK usw.). )

Auf diese Weise kann der Python-Parser den Text korrekt in die entsprechende codierte Zeichenfolge analysieren.

Im Allgemeinen wurde das Problem der Zeichencodierung in Python3 erheblich optimiert und ist nicht mehr so ​​problematisch wie in Python2. In Python3 ist Text immer Unicode, dargestellt durch den Typ str, und Binärdaten werden durch Bytes str dargestellt, und Bytes werden nicht heimlich miteinander vermischt, was den Unterschied zwischen den beiden deutlicher macht.

Zusammenfassung

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels für alle beim Erlernen oder Verwenden von Python hilfreich sein kann. Sie können eine Nachricht hinterlassen, um zu kommunizieren. Vielen Dank für Ihre Unterstützung für die chinesische PHP-Website.


Weitere Artikel zum Vergleich der Versionen und Codierung von Python 2 und Python 3 finden Sie auf der chinesischen PHP-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