Heim  >  Artikel  >  Backend-Entwicklung  >  Vergleich zwischen den Zeichenfunktionen chr, unichr und ord in Python

Vergleich zwischen den Zeichenfunktionen chr, unichr und ord in Python

高洛峰
高洛峰Original
2017-03-02 11:26:092118Durchsuche

chr, unichr und ord können alle für die Zeichentypkonvertierung in Python verwendet werden. Hier werden wir kurz auf den Vergleich zwischen den Zeichenfunktionen chr, unichr und ord in Python eingehen.

  • ord ist die Abkürzung für Unicode-Ordinalzahl, also die Zahl

  • chr ist die Abkürzung für Zeichen, also das Zeichen

  • ord und chr werden entsprechend zueinander konvertiert

  • Da chr aber auf ASCII beschränkt ist, beträgt die Länge nur 256, es gibt also ein zusätzliches unichr .

>>c = u'康'

>>c
u'\u5eb7'
>>ord(c)
24747
>>chr(24247)
ValueError: chr() arg not in range(256)
>>unichr(24247)
u'\u5eb7'

Die Funktion chr() akzeptiert eine Ganzzahl im Bereich (256) (d. h. 0~255) als einen Parameter und gibt ein entsprechendes Zeichen zurück. unichr() ist dasselbe, außer dass es Unicode-Zeichen zurückgibt. Der Parameterbereich von unichr(), der ab Python 2.0 hinzugefügt wurde, hängt davon ab, wie Ihr Python kompiliert wurde. Wenn es sich um Unicode handelt, das als USC2 konfiguriert ist, ist der zulässige Bereich Bereich (65536) oder 0x0000-0xFFFF. Wenn es als UCS4 konfiguriert ist, sollte dieser Wert Bereich (1114112) oder 0x000000-0x110000 sein. Wenn die bereitgestellten Parameter nicht im zulässigen Bereich liegen, wird eine ValueError-Ausnahme gemeldet.
Die Funktion ord() ist die gepaarte Funktion der Funktion chr() (für 8-Bit-ASCII-Strings) oder der Funktion unichr() (für Unicode-Objekte). Sie benötigt ein Zeichen (einen String der Länge 1). ein Parameter. Gibt den entsprechenden ASCII-Wert oder Unicode-Wert zurück. Wenn das angegebene Unicode-Zeichen Ihren Python-Definitionsbereich überschreitet, wird eine TypeError-Ausnahme ausgelöst.

>>> chr(65)
'A'
>>> ord('a')
97
>>> unichr(12345)
u'\u3039'
>>> chr(12345)
Traceback (most recent call last):
  File "<stdin>", line 1, in ?  
   chr(12345)
ValueError: chr() arg not in range(256)
>>> ord(u&#39;\ufffff&#39;)
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
   ord(u&#39;\ufffff&#39;)
TypeError: ord() expected a character, but string of length 2 found
>>> ord(u&#39;\u2345&#39;)
9029


Weitere Artikel zum Vergleich zwischen chr-, unichr- und ord-Zeichenfunktionen in Python. Bitte zahlen Sie Achtung PHP chinesische 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