Heim  >  Artikel  >  Backend-Entwicklung  >  Der Unterschied zwischen Python2- und Python3-Strings

Der Unterschied zwischen Python2- und Python3-Strings

(*-*)浩
(*-*)浩Original
2019-06-28 14:54:322292Durchsuche

In Python2 können Zeichenfolgen internationale Zeichensätze und Unicode-Codierung nicht vollständig unterstützen. Um diese Einschränkung zu umgehen, verwendet Python 2 einen separaten String-Typ für Unicode-Daten. Um ein Unicode-Zeichenfolgenliteral einzugeben, fügen Sie „u“ vor dem ersten Anführungszeichen hinzu. Gewöhnliche Zeichenfolgen in Python 2 sind tatsächlich codierte (Nicht-Unicode-)Byte-Zeichenfolgen. In Python3 muss dieses Präfixzeichen nicht hinzugefügt werden, da es sonst zu einem Syntaxfehler kommt, da alle Zeichenfolgen standardmäßig bereits Unicode-codiert sind.

Der Unterschied zwischen Python2- und Python3-Strings

Aber es gibt noch eine weitere Art von Zeichenfolge in Python3 (empfohlenes Lernen: Python-Video-Tutorial)

type(b'132') => byte型

Und Wenn Sie in Python2 so schreiben, wird ein Fehler gemeldet

Es wird also offensichtlich einen großen Unterschied in der Verwendung von Dekodieren und Kodieren geben

Dekodieren in Python2 konvertiert den STR-Typ in den Unicode-Typ

Bei der Dekodierung in Python3 wird der Byte-Typ in den Str-Typ konvertiert.

Nehmen Sie Python3 als Beispiel:

src = ‘你好世界’

Zu diesem Zeitpunkt ist str vom Typ str, wenn Sie ihn konvertieren müssen Byte-Typ, Sie können Folgendes übergeben:

src =  src.encode('utf-8')

Zu diesem Zeitpunkt ist src bereits vom Byte-Typ. Wenn Sie es wieder in str konvertieren möchten, verwenden Sie einfach:

src = src .decode()

Zusätzlich das open Die Funktion in Python3 fügt einen Codierungsparameter hinzu. Der Standardwert ist UTF-8. Das heißt, wenn das geöffnete Dateihandle gelesen oder geschrieben wird, werden nur str-Zeichen empfangen, die das Unicode-Format enthalten.

Wenn Sie zu diesem Zeitpunkt eine Binärdatei übergeben, wird ein Fehler gemeldet, zum Beispiel:

with open('a.bin', 'w') as f:
f.write('xxx')

Wenn Sie Binärdateien lesen und schreiben möchten, müssen Sie die Öffnungsmethode angeben als „wb“ oder „rb“

Wenn Sie außerdem feststellen, dass die Webseite beim Crawlen nicht richtig angezeigt werden kann, müssen Sie den Inhalt transkodieren.

Weitere technische Artikel zum Thema Python finden Sie in der Spalte Python-Tutorial, um mehr darüber zu erfahren!

Das obige ist der detaillierte Inhalt vonDer Unterschied zwischen Python2- und Python3-Strings. 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