Heim >Backend-Entwicklung >Python-Tutorial >Der Unterschied zwischen Python2- und Python3-Strings
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.
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!