Heim > Artikel > Backend-Entwicklung > Eine kurze Diskussion über Zeichenkodierung und Strings beim Python-Lernen
Dieser Artikel bietet Ihnen eine kurze Diskussion über Zeichenkodierung und Zeichenfolgen beim Python-Lernen. Es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird Ihnen hilfreich sein.
Was ist die Zeichenkodierung?
Zum Beispiel kann das chinesische Schriftzeichen „中“ durch das folgende
dezimal: 20013
Binär:01001110 00101101 (Unicode)/11100100 10111000 10101101 (UTF-8)
Teenager :u4e2d
ASCII-Kodierung
1 Bytes
2 Bytes . (Zum Beispiel ist der mit ASCII codierte Buchstabe A dezimal 65, binär 01000001; A Unicode-Kodierung ist 00000000 01000001 )
ASCII, was für Speicherung und Übertragung nicht kosteneffektiv ist (UTF-8). löst)
UTF-8
Kodierung EinUnicode-Zeichen wird in 1-6 Bytes entsprechend unterschiedlicher Zahlengrößen kodiert >1 Bytes, chinesische Zeichen sind normalerweise 3 Bytes, nur sehr ungewöhnliche Zeichen werden als 4-6 Bytes.
1) Wenn der Text, den Sie übertragen möchten, eine große Anzahl englischer Zeichen enthält, kann die Kodierung mit UTF-8 Platz sparen; 2) ASCII Die -Kodierung kann tatsächlich als Teil der
-Kodierung angesehen werden. Daher unterstützen viele nur die ASCII-Kodierung. Ältere Software kann weiterhin unter der UTF-8-Kodierung funktionieren. Arbeitsmethode für die allgemeine Zeichenkodierung des Computersystems:
Speicher: einheitliche Unicode
KodierungFestplatte, Übertragung: Konvertieren in utf-8
Beim Surfen im Internet konvertiert der Server den dynamisch generierten Unicode
-Inhalt inUTF-8 und übertragen Sie es dann an den Browser. Python-Strings
Verwandte Funktionen
ord()
Ruft die Ganzzahldarstellung eines Zeichens (einzelnes Zeichen) ab. Der Parameter ist das einzelne Zeichen, das bearbeitet werden soll, und gibt eine Ganzzahl zurück.
chr()Kodierung in das entsprechende Zeichen (einzelnes Zeichen) umwandeln
encode, konvertiert den String str in die angegebene Codierung Methode (Parameter) wird zu Bytes'str'.encode
() Gibt BytesString zurück. Chinesische Kodierung mit ascii
meldet einen Fehlerdecode()
konvertiert Bytes, die aus dem Netzwerk oder der Festplatte gelesen werden, in die angegebene Codierungsmethode (Parameter ) wird zu str'bytes'.decode(ascii/utf-8) gibt str string
Bytes
gibt, können Sieerrors='ignore'übergeben, um die falschen Bytes zu ignorieren> >> b'xe4xb8xadxff'.decode('utf-8',errors='ignore') '中'
len(), berechnet die Anzahl der in der Zeichenfolge enthaltenen Zeichen >>> len(b'ABC') 3 > ;>> len(b'xe4xb8xadxe6x96x87') 6 >>> len('Chinese'.encode('utf-8')) 6
Python 3
In der Version ist der String inUnicode codiert, d. h. der String wird von Python unterstützt mehrsprachigDer String-Typ von Python ist str. Wenn
über das Netzwerk übertragen oder auf der Festplatte gespeichert werden soll, müssen Siestr ändern zu Bytes. >> Um verstümmelte Zeichen zu vermeiden, sollten Sie für
strund BytesKonvertieren<<Der Unterschied zwischen str und Bytes
1) Ein Zeichen von str entspricht mehreren Bytes , aber jedes Zeichen von Bytes belegt nur ein Byte . (Multibyte-Zeichen in Einzelbyte-Multizeichen zerlegen)
>>> 'ABC'.encode('ascii') b'ABC ' > ;>> 'Chinese'.encode('utf-8') b'xe4xb8xadxe6x96x87'
In Bytes kann es nicht als ASCII Zeichen werden mit x## angezeigt.
Zeichen werden vorangestellt und in Anführungszeichen gesetzt
Die erste Kommentarzeile soll Linux mitteilen /OS > Die zweite Kommentarzeile besteht darin, den Python-Interpreter anzuweisen, den Quellcode gemäß UTF-8 Codierung, andernfalls ist die chinesische Ausgabe, die Sie in den Quellcode schreiben, möglicherweise verstümmelt.
>>Editor-NutzungUTF-8 ohne BOM<< String-Formatierung
Probleme>>> 'Hallo, %s' % 'world' 'Hallo, Welt' >> ;> ; 'Hallo, %s, du hast $%d.' % ('Michael', 1000000) 'Hallo, Michael, du hast $1000000.'
%Operator
wird zum Formatieren von Zeichenfolgen verwendet. Es gibt mehrere%?
-Platzhalter innerhalb der Zeichenfolge, gefolgt von mehreren Variablen oder Werten, und die Reihenfolge muss konsistent sein. Wenn es nur ein%? gibt, können die Klammern weggelassen werden.
%%, um ein %> darzustellen; >> 'Wachstumsrate: %d %%' % 7 'Wachstumsrate: 7 %'
format() Ein weiterer Eine Möglichkeit, eine Zeichenfolge zu formatieren, besteht darin, die Methode
format()innerhalb der Zeichenfolge durch die übergebenen Parameter ersetzt. ,
{1}...占位符 | 替换内容 |
%d | 整数 |
%f | 浮点数 |
%s | 字符串 |
%x | 十六进制整数 |
%
:>> ;> Hallo, {0}, die Punktzahl hat sich um {1:.1f}%'.format('Xiao Ming', 17.125) 'Hallo, Xiao Ming, die Punktzahl hat sich um 17,1% verbessert'
Das obige ist der detaillierte Inhalt vonEine kurze Diskussion über Zeichenkodierung und Strings beim Python-Lernen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!