Heim > Backend-Entwicklung > Python-Tutorial > Eine kurze Diskussion über Zeichenkodierung und Strings beim Python-Lernen

Eine kurze Diskussion über Zeichenkodierung und Strings beim Python-Lernen

青灯夜游
Freigeben: 2018-10-29 18:01:47
nach vorne
1733 Leute haben es durchsucht

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

    ASCII
  • Kodierung ist

    1 Bytes

  • Kann nur einfaches Englisch kodieren

  • Platz sparen

Unicode-Kodierung

    Unicode
  • -Kodierung beträgt normalerweise

    2 Bytes . (Zum Beispiel ist der mit ASCII codierte Buchstabe A dezimal 65, binär 01000001; A Unicode-Kodierung ist 00000000 01000001 )

  • uicode
  • Einheitliche Kodierung, Lösung von Kodierungskonflikten und Probleme mit verstümmeltem Code verschwinden

  • Verdoppelt den Speicherplatz von

    ASCII, was für Speicherung und Übertragung nicht kosteneffektiv ist (UTF-8). löst)

UTF-8-Kodierung (Unicode-Kodierung mit variabler Länge)

UTF-8

Kodierung Ein

Unicode-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

UTF-8

-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

Kodierung

Festplatte, Übertragung: Konvertieren in utf-8

Beim Surfen im Internet konvertiert der Server den dynamisch generierten Unicode

-Inhalt in

UTF-8 und übertragen Sie es dann an den Browser. Python-Strings

Verwandte Funktionen

ord()
    Funktion
  • 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()
  • Funktion
  • Kodierung in das entsprechende Zeichen (einzelnes Zeichen) umwandeln

    encode
  • () Funktion
  • , konvertiert den String str in die angegebene Codierung Methode (Parameter) wird zu Bytes'str'.encode

    (
ascii/utf-8

) Gibt BytesString zurück. Chinesische Kodierung mit ascii

meldet einen Fehler

decode()
    Funktion
  • 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 können nicht dekodiert werden und es wird ein Fehler gemeldet,
Wenn es nur eine kleine Anzahl ungültiger Bytes in

Bytes

gibt, können Sie

errors='ignore'übergeben, um die falschen Bytes zu ignorieren> >> b'xe4xb8xadxff'.decode('utf-8',errors='ignore') '中'

len()
    Funktion
  • , berechnet die Anzahl der in der Zeichenfolge enthaltenen Zeichen >>> len(b'ABC') 3 > ;>> len(b'xe4xb8xadxe6x96x87') 6 >>> len('Chinese'.encode('utf-8')) 6

In der neuesten Version

Python 3

In der Version ist der String in

Unicode 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 Sie

str ändern zu Bytes. >> Um verstümmelte Zeichen zu vermeiden, sollten Sie für

str

und 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.

  • 2) Bytes

    Zeichen werden vorangestellt und in Anführungszeichen gesetzt

.py-Datei enthält chinesische Zeichen utf-. 8-Kodierung

#!/usr/bin/env python3 # -*- Kodierung: utf-8 -*-

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.

  • Escape, verwenden Sie

    %%, um ein %> darzustellen; >> 'Wachstumsrate: %d %%' % 7 'Wachstumsrate: 7 %'

  • format() Ein weiterer Eine Möglichkeit, eine Zeichenfolge zu formatieren, besteht darin, die Methode

    format()
  • der Zeichenfolge zu verwenden, die die Platzhalter
{0}

innerhalb der Zeichenfolge durch die übergebenen Parameter ersetzt. ,

{1}...
占位符 替换内容
%d 整数
%f 浮点数
%s 字符串
%x 十六进制整数
, aber diese Schreibweise ist viel schwieriger als

%

:

>> ;> 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!

Verwandte Etiketten:
Quelle:cnblogs.com
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage