Verwenden von ord() und chr() zur Konvertierung von Zeichen und Ganzzahlen
In diesem Schritt lernen wir, wie wir die integrierten Python-Funktionen ord()
und chr()
verwenden, um zwischen Zeichen und ihren entsprechenden ganzzahligen Darstellungen in Unicode zu konvertieren.
In Python 3 werden Zeichenketten (strings) mithilfe von Unicode dargestellt. Die Funktion ord()
nimmt ein einzelnes Zeichen als Eingabe und gibt dessen entsprechenden Unicode-Dezimalganzzahlwert zurück.
Erstellen wir eine neue Python-Datei, um mit diesen Funktionen zu experimentieren. Klicken Sie im WebIDE mit der rechten Maustaste auf das Verzeichnis project
im Dateiexplorer und wählen Sie New File
. Benennen Sie die Datei char_conversion.py
.
Öffnen Sie char_conversion.py
im Editor und fügen Sie den folgenden Code hinzu:
## Verwenden von ord(), um den dezimalen Unicode-Wert von Zeichen zu erhalten
char1 = 'a'
char2 = 'é'
char3 = ';'
print(f"Der dezimale Unicode-Wert von '{char1}' ist: {ord(char1)}")
print(f"Der dezimale Unicode-Wert von '{char2}' ist: {ord(char2)}")
print(f"Der dezimale Unicode-Wert von '{char3}' ist: {ord(char3)}")
Speichern Sie die Datei, indem Sie Strg + S
(oder Cmd + S
unter macOS) drücken.
Öffnen Sie nun erneut das integrierte Terminal (falls es noch nicht geöffnet ist) und führen Sie das Skript mit dem Befehl python
aus:
python char_conversion.py
Sie sollten eine Ausgabe ähnlich dieser sehen:
Der dezimale Unicode-Wert von 'a' ist: 97
Der dezimale Unicode-Wert von 'é' ist: 233
Der dezimale Unicode-Wert von ';' ist: 59
Die Funktion chr()
führt die umgekehrte Operation durch. Sie nimmt eine Dezimalganzzahl (oder eine Hexadezimalganzzahl) entgegen, die einen Unicode-Codepunkt darstellt, und gibt das entsprechende Zeichen zurück.
Fügen wir char_conversion.py
weiteren Code hinzu, um die Funktion chr()
zu verwenden. Hängen Sie die folgenden Zeilen an den vorhandenen Code an:
## Verwenden von chr(), um das Zeichen aus einem dezimalen Unicode-Wert zu erhalten
int1 = 8364
int2 = 8482
print(f"Das Zeichen für den dezimalen Unicode-Wert {int1} ist: {chr(int1)}")
print(f"Das Zeichen für den dezimalen Unicode-Wert {int2} ist: {chr(int2)}")
## Sie können auch Hexadezimalwerte mit chr() verwenden
hex_int = 0x00A9 ## Hexadezimal für das Zeichen '©'
print(f"Das Zeichen für den hexadezimalen Unicode-Wert {hex(hex_int)} ist: {chr(hex_int)}")
Speichern Sie die Datei erneut.
Führen Sie das Skript vom Terminal aus:
python char_conversion.py
Die Ausgabe sollte nun die Ergebnisse der chr()
-Funktion enthalten:
Der dezimale Unicode-Wert von 'a' ist: 97
Der dezimale Unicode-Wert von 'é' ist: 233
Der dezimale Unicode-Wert von ';' ist: 59
Das Zeichen für den dezimalen Unicode-Wert 8364 ist: €
Das Zeichen für den dezimalen Unicode-Wert 8482 ist: ™
Das Zeichen für den hexadezimalen Unicode-Wert 0xa9 ist: ©
Sie fragen sich vielleicht, wie Sie die hexadezimale Unicode-Darstellung eines Zeichens finden können. Sie können die Funktion ord()
verwenden, um den Dezimalwert zu erhalten, und dann die integrierte Funktion hex()
, um den Dezimalwert in seine hexadezimale Zeichenkettenrepräsentation zu konvertieren.
Fügen Sie den folgenden Code zu char_conversion.py
hinzu:
## Konvertieren eines Zeichens in seine hexadezimale Unicode-Darstellung
char_copyright = '©'
decimal_copyright = ord(char_copyright)
hexadecimal_copyright = hex(decimal_copyright)
print(f"Der hexadezimale Unicode-Wert von '{char_copyright}' ist: {hexadecimal_copyright}")
Speichern Sie die Datei und führen Sie sie ein letztes Mal aus:
python char_conversion.py
Die endgültige Ausgabe enthält den hexadezimalen Wert für das Zeichen '©':
Der dezimale Unicode-Wert von 'a' ist: 97
Der dezimale Unicode-Wert von 'é' ist: 233
Der dezimale Unicode-Wert von ';' ist: 59
Das Zeichen für den dezimalen Unicode-Wert 8364 ist: €
Das Zeichen für den dezimalen Unicode-Wert 8482 ist: ™
Das Zeichen für den hexadezimalen Unicode-Wert 0xa9 ist: ©
Der hexadezimale Unicode-Wert von '©' ist: 0xa9
Dies zeigt, wie ord()
, chr()
und hex()
zusammen verwendet werden können, um mit Zeichenkodierungen in Python zu arbeiten.