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.