chr()
Die eingebaute Funktion chr() wandelt einen Unicode-Codepoint in das zugehörige Zeichen. Diese Einleitung zeigt, wie sich chr() in Python sinnvoll einsetzen lässt: von der Erzeugung dynamischer Zeichenketten über einfache Validierungen bis hin zur Arbeit mit Unicode-Bereichen. Dabei geht es um Grenzen, typische Fehlerquellen und praktische Beispiele, damit Textverarbeitung robust und nachvollziehbar bleibt.
Inhaltsverzeichnis
Einführung
Die chr() Funktion dient zur Arbeit mit Unicode-Zeichen. Sie bildet das Gegenstück zur ord() Funktion und ist ein Werkzeug für die Zeichenmanipulation, Textverarbeitung und die Arbeit mit verschiedenen Schriftsystemen und Symbolen.
Die Funktion chr() nimmt einen Unicode-Code-Point (eine ganze Zahl) als Argument entgegen und gibt das entsprechende Unicode-Zeichen als String zurück.
Der Unicode-Standard weist jedem Zeichen eine eindeutige Nummer zu, den sogenannten Code Point. Die chr() Funktion führt die Konvertierung zwischen diesen numerischen Repräsentationen und den für Menschen lesbaren Zeichen.
Syntax
chr(codepoint, /)Der / in der Signatur bedeutet, dass der Parameter nur als positionelles Argument übergeben werden kann, nicht als Keyword-Argument.
Parameter
codepoint
Unicode-Code-Point als ganze Zahl im Wertebereich 0 bis 1.114.111 (dezimal)
Der gültige Bereich entspricht dem vollständigen Unicode-Zeichensatz:
- 0 bis 0xFFFF (0 - 65.535): Basic Multilingual Plan (BMP) - enthält die meisten modernen Schriften
- 0x10000 bis 0x10FFFF (65.535 - 1.114.111): Supplementary Planes - enthält historische Schriften, Emoji, seltene Zeichen
Rückgabewert
Die Funktion gibt immer 1 Zeichen (die Länge des Strings ist immer 1, auch wenn es sich um ein mehrbytiges Unicode-Zeichen handelt) zurück. Es ist das Unicode-Zeichen, dass dem übergebenen Code-Point entspricht.
Einfaches Beispiel
res = chr(97)
print(res)aFehlerfälle und Ausnahmen
Die chr() Funktion wirft eine ValueError Exception, wenn der übergebene Code-Point außerhalb des gültigen Bereichs liegt.
try:
char = chr(-1)
except ValueError as e:
print(f"Fehler: {e}")Fehler: chr() arg not in range(0x110000)try:
char = chr(1114112)
except ValueError as e:
print(f"Fehler: {e}")Fehler: chr() arg not in range(0x110000)Python prüft strikt, dass der Code-Point im gültigen Bereich liegt. Werte kleiner als 0 oder größer als 0x10FFFF (1.114.111) sind ungültig und führen zu einem Fehler.
Darstellungsformen
In Python können Code-Points in verschiedenen Zahlensystemen angegeben werden.
Dezimal
Die natürlichste Form für Menschen. Die Zahl 65 entspricht dem Großbuchstaben ‘A’.
character = chr(65)
print(character)AHexadezimal
Hexadezimale Notation ist in der Unicode-Dokumentation üblich, da sie kompakter ist und die Struktur des Unicode-Standards besser widerspiegelt. Das Präfix 0x kennzeichnet eine hexadezimale Zahl.
character_one = chr(0x41)
print(character_one)
character_two = chr(0x31B1)
print(character_two)A
ㆱOktal
Oktalzahlen sind seltener in Verwendung. Das Präfix 0o kennzeichnet eine Oktalzahl.
character = chr(0o101)
print(character)ABinär
Binäre Darstellung zeigt die direkte Bit-Repräsentation. Das Präfix 0b kennzeichnet eine Binärzahl.
character = chr(0b1000001)
print(character)APraktische Beispiele
Im Folgenden schauen wir uns einige praktische Beispiele zu chr() Funktion in Python an.
Alphabet erzeugen
Mit Hilfe von chr() Funktion können wir das Alphabet erzeugen.
title_letters = [chr(i) for i in range(65, 91)]
print(title_letters)['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']Oder alle Buchstaben als String.
title_letters = "".join(chr(i) for i in range(65, 91))
print(title_letters)ABCDEFGHIJKLMNOPQRSTUVWXYZOder wir können uns alle Kleinbuchstaben ausgeben lassen.
lower_letters = "".join(chr(i) for i in range(97, 123))
print(lower_letters)abcdefghijklmnopqrstuvwxyzSonderzeichen und Symbole
Viele häufig verwendete Symbole haben feste Code-Points.
- Euro-Symbol (€): 8364 oder 0x20AC
- Britisches Pfund (£): 163 oder 0xA3
- Unendlich Symbol (∞): 8734 oder 0x221E
euro = chr(8364)
print(euro)
pfund = chr(163)
print(pfund)
yen = chr(165)
print(yen)
unendlich = chr(8734)
print(unendlich)
pi = chr(960)
print(pi)
summe = chr(8504)
print(summe)
pfeil_links = chr(8592)
print(pfeil_links)
pfeil_rechts = chr(8592)
print(pfeil_rechts)€
£
¥
∞
π
ℸ
←
←