navigation Navigation


Inhaltsverzeichnis

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

    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

    Beispiel
    res = chr(97)
    print(res)
    a

    Fehlerfälle und Ausnahmen

    Die chr() Funktion wirft eine ValueError Exception, wenn der übergebene Code-Point außerhalb des gültigen Bereichs liegt.

    Beispiel - zu niedrig
    try:
        char = chr(-1)
    except ValueError as e:
        print(f"Fehler: {e}")
    Fehler: chr() arg not in range(0x110000)
    Beispiel - zu hoch
    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’.

    Beispiel - dezimal
    character = chr(65)
    print(character)
    A

    Hexadezimal

    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.

    Beispiel - hexadezimal
    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.

    Beispiel - oktal
    character = chr(0o101)
    print(character)
    A

    Binär

    Binäre Darstellung zeigt die direkte Bit-Repräsentation. Das Präfix 0b kennzeichnet eine Binärzahl.

    Beispiel - binär
    character = chr(0b1000001)
    print(character)
    A

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

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

    Beispiel
    title_letters = "".join(chr(i) for i in range(65, 91))
    print(title_letters)
    ABCDEFGHIJKLMNOPQRSTUVWXYZ

    Oder wir können uns alle Kleinbuchstaben ausgeben lassen.

    Beispiel
    lower_letters = "".join(chr(i) for i in range(97, 123))
    print(lower_letters)
    abcdefghijklmnopqrstuvwxyz

    Sonderzeichen 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
    Beispiel
    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)
    
    £
    ¥
    
    π