Python - Unicode System (Deutsch)

Hallo dort, zukünftige Python-Zauberer! Heute werden wir auf eine aufregende Reise in die Welt der Unicode in Python einsteigen. Keine Sorge, wenn du noch nie von Unicode gehört hast – am Ende dieses Tutorials wirst du Text wie ein Profi behandeln!

Python - Unicode System

Was ist das Unicode-System?

Stelle dir vor, du möchtest einem Brief an deinen Brieffreund in Japan schreiben, aber deine Tastatur hat nur englische Buchstaben. Frustrierend, oder? Hier kommt Unicode zur Rettung!

Unicode ist wie ein riesiges Wörterbuch, das jedem Zeichen in jedem Sprachsystem der Welt eine eindeutige Nummer (genannt Codepunkt) zuweist. Es geht nicht nur um Buchstaben und Zahlen – es beinhaltet auch Interpunktionszeichen, Symbole und sogar Emojis! ?

Beispielsweise:

  • Der Buchstabe 'A' hat den Codepunkt U+0041
  • Das Symbol '©' hat den Codepunkt U+00A9
  • Das Emoji '?' hat den Codepunkt U+1F60A

Warum benötigen wir Unicode?

Vor Unicode wurden für verschiedene Sprachen unterschiedliche KodierungsSysteme verwendet, was oft zu Verwirrung und Fehlern führte, wenn Daten zwischen verschiedenen Computersystemen getauscht wurden. Unicode löste dieses Problem, indem es einen universellen Standard bot.

Zeichenkodierung

Jetzt, da wir verstehen, was Unicode ist, reden wir über die Zeichenkodierung. Stelle dir vor, es wäre das Prozess der Übersetzung dieser Unicode-Codepunkte in ein Format, das Computer speichern und verarbeiten können.

UTF-8: Die häufigste Kodierung

UTF-8 ist das am häufigsten verwendete Kodierungssystem. Es ist wie ein kluger Verpackungssystem, das alle Unicode-Zeichen darstellen kann und rückwärtskompatibel mit ASCII (einem älteren Kodierungssystem) ist.

Sehen wir uns an, wie Python UTF-8 verarbeitet:

# Kodierung eines Strings zu UTF-8
text = "Hello, 世界!"
encoded_text = text.encode('utf-8')
print(encoded_text)  # b'Hello, \xe4\xb8\x96\xe7\x95\x8c!'

# Dekodierung von UTF-8 zurück zu einem String
decoded_text = encoded_text.decode('utf-8')
print(decoded_text)  # Hello, 世界!

In diesem Beispiel kodieren wir unseren mehrsprachigen String zu UTF-8. Das b-Präfix in der Ausgabe zeigt an, dass es sich um ein Bytes-Objekt handelt. Wenn wir es zurückdekodieren, erhalten wir unseren ursprünglichen String.

Unicode-Unterstützung in Python

Eine der großartigen Dinge bei Python ist seine ausgezeichnete Unicode-Unterstützung. In Python 3 sind alle Strings standardmäßig Unicode. Das bedeutet, du kannst problemlos Zeichen aus verschiedenen Sprachen mischen, ohne besondere Behandlung!

Erstellung von Unicode-Strings

# Einfacher Unicode-String
hello_world = "Hello, 世界!"
print(hello_world)  # Hello, 世界!

# Verwendung von Unicode-Escape-Sequenzen
smiley = "\U0001F60A"
print(smiley)  # ?

In dem zweiten Beispiel haben wir eine Unicode-Escape-Sequenz verwendet, um das Smiley-Emoji darzustellen. Das \U teilt Python mit, dass das, was folgt, ein Unicode-Codepunkt ist.

Arbeiten mit Unicode in Python

Erkunden wir einige weitere Unicode-Operationen:

# Ermittlung des Unicode-Codepunkts eines Zeichens
print(ord('A'))  # 65
print(ord('世'))  # 19990

# Ermittlung eines Zeichens aus einem Unicode-Codepunkt
print(chr(65))  # A
print(chr(19990))  # 世

# Stringlänge
mixed_string = "Hello, 世界!"
print(len(mixed_string))  # 9 (Hinweis: 世 und 界 werden als einzelne Zeichen gezählt)

Die Funktion ord() gibt uns den Unicode-Codepunkt eines Zeichens, während chr() das Gegenteil tut. Beachte, wie len() die chinesischen Zeichen korrekt als einzelne Einheiten zählt.

Umgang mit Unicode in Dateien

Wenn du mit Dateien arbeitest, die Unicode-Text enthalten, denke immer daran, die Kodierung anzugeben:

# Schreiben von Unicode in eine Datei
with open('unicode_file.txt', 'w', encoding='utf-8') as f:
f.write("Hello, 世界!")

# Lesen von Unicode aus einer Datei
with open('unicode_file.txt', 'r', encoding='utf-8') as f:
content = f.read()
print(content)  # Hello, 世界!

Durch die Angabe von encoding='utf-8' stellen wir sicher, dass unser Unicode-Text korrekt in die Datei geschrieben und aus ihr gelesen wird.

Unicode-Methoden in Python

Python bietet mehrere nützliche Methoden für die Arbeit mit Unicode-Strings. Hier ist eine Tabelle, die einige davon zusammenfasst:

Methode Beschreibung Beispiel
isalpha() Liefert True zurück, wenn alle Zeichen im String alphanumerisch sind "Hello".isalpha() # True
isnumeric() Liefert True zurück, wenn alle Zeichen im String numerisch sind "123".isnumeric() # True
isalnum() Liefert True zurück, wenn alle Zeichen im String alphanumerisch sind "Hello123".isalnum() # True
islower() Liefert True zurück, wenn alle Großbuchstaben im String klein sind "hello".islower() # True
isupper() Liefert True zurück, wenn alle Kleinbuchstaben im String groß sind "HELLO".isupper() # True
istitle() Liefert True zurück, wenn der String titlecased ist "Hello World".istitle() # True

Diese Methoden sind besonders nützlich, wenn du Unicode-Strings validieren oder kategorisieren musst.

Schlussfolgerung

Herzlichen Glückwunsch! Du hast gerade deine ersten Schritte in die faszinierende Welt der Unicode in Python gemacht. Behalte im Gedächtnis, dass der Umgang mit Text aus verschiedenen Sprachen und Systemen eine entscheidende Fähigkeit in unserer vernetzten Welt ist, und Python macht es überraschend einfach.

Wenn du deinen Python-Weg fortsetzt, wirst du feststellen, dass dieses Verständnis von Unicode in vielen Situationen nützlich ist, von Web-Scraping über Datenanalyse und darüber hinaus. Übe weiter und bald wirst du Emojis und exotische Schriften wie ein wahrer Python-Zauberer jonglieren! ?✨

Credits: Image by storyset