Effektives Python-Memo Punkt 3
Hinweise zu effektivem Python
Punkt 3: Kennen Sie den Unterschied zwischen Bytes, str, Unicode (p5 ~ p7)
** Wenn Sie in Python die Verarbeitung von Zeichenfolgen nicht verstehen, geraten Sie in eine Falle. ** ** **
Speziell
- In Python2 sind die Zeichenfolgen str und unicode
- Ich habe Python2 noch nie verwendet, daher habe ich es hier nicht wirklich erkannt.
-
Die Zeichenfolge enthält str (der Inhalt ist eine Byte-Zeichenfolge) und Unicode (wenn Sie dies nicht verstehen, geraten Sie in eine Falle)
-
In Python3 sind die Zeichenfolgen str und bytes
--str und Bytes können in einem Operator nicht zusammen verwendet werden
--str ist standardmäßig Unicode (obwohl Sie u '' separat verwenden können ...)
--encode von str in bytes
--bytes to str wird dekodiert
** Häufige Fehler **
- In Python2 funktioniert es bei der Verarbeitung von ASCII (7 Bit), wenn es innerhalb des Bereichs von ASCII-Zeichen liegt, ohne Angabe von str oder Unicode. Wenn dieser Bereich jedoch überschritten wird, geht der Zeichencode verloren und es tritt eine Ausnahme auf.
- In Python3 ist die Verarbeitung von Dateioperationen standardmäßig auf UTF-8 eingestellt. Beim Versuch, Binärdaten zu schreiben, tritt ein Fehler auf (dies scheint der Punkt zu sein, an dem Python2-Benutzer stolpern). Es ist besser, die Codierung auf "wb" (binäres Schreiben) anstatt auf "w" zu setzen.