Was genau machen "u"- und "r"-String-Präfixe und was sind rohe String-Literale?

In Python bezeichnet das "r" Präfix vor einem String, dass es sich um einen rohen String-Literal handelt. Das bedeutet, dass alle Rückwärtsstriche () im String nicht als Escape-Zeichen behandelt werden. Beispielsweise würde der String "C:\Windows" normalerweise als der String "C:Windows" interpretiert, aber mit dem "r" Präfix wird er als der String "C:\Windows" interpretiert.

normaler_string = "C:\Windows"
print(normaler_string)  # Ausgabe: C:Windows

roher_string = r"C:\Windows"
print(roher_string)  # Ausgabe: C:\Windows

Das "u" Präfix vor einem String kennzeichnet, dass es sich um einen Unicode-String-Literal handelt. Unicode ist ein Standard zur Codierung von Zeichen, so dass sie von Computern verstanden werden können. In Python 3 sind alle Strings standardmäßig Unicode, so dass das "u" Präfix nicht erforderlich ist.

unicode_string = u"Hallo, 世界!"
print(unicode_string)

Man kann auch Präfixe wie ur kombinieren, um einen rohen Unicode-String zu erstellen. Aber das ist in python 3 nicht sehr häufig, da alle Strings standardmäßig Unicode sind

raw_unicode_string = ur"C:\Windows"
print(raw_unicode_string)