HOWTO · Python
Roher String in Python
In diesem Tutorial erfahren Sie, was der r-Ausdruck vor einem String in Python darstellt.
Es gibt viele Möglichkeiten, Strings in Python darzustellen. Eine Möglichkeit, Strings darzustellen, besteht darin, sie in Rohstrings umzuwandeln.
In diesem Tutorial wird eine RohZeichenkette in Python definiert.
Roher String in Python
Der Rohstring in Python ist einfach jeder übliche String, dem ein r oder R vorangestellt ist. Jeder im String vorhandene Backslash (\) wird wie ein echtes oder literales Zeichen behandelt. Wenn beispielsweise zwischen einer Zeichenkette \n oder \t stehen, wird sie als Zeichen und nicht als newline- oder Tabulatorzeichen betrachtet.
Nehmen wir ein Beispiel für die Verwendung des Zeilenumbruchs \n zwischen einer Zeichenkette, ohne der Zeichenkette r oder R voranzustellen.
print("Hi\nHow are you?")
Ausgabe:
Hi
How are you?
Lassen Sie uns nun dem ganzen String das Rohzeichen r voranstellen.
print(r"Hi\nHow are you?")
Ausgabe:
Hi\nHow are you?
Wie Sie sehen, wird das Zeilenumbruchzeichen \n als Literalstring und nicht als Sonderzeichen behandelt.
Ungültige Raw-Strings in Python
Ein einzelner umgekehrter Schrägstrich \ wird in Python nicht als gültiger Rohstring angesehen.
print(r"\")
Ausgabe:
File "<ipython-input-6-6cdee2fbdda0>", line 1
print(r"\")
^
SyntaxError: EOL while scanning string literal
Verwendung von Raw-Strings in Python
In Python werden Rohstrings verwendet, um einen String zurückzugeben, wenn er überhaupt nicht verarbeitet wird. Das bedeutet, wenn einem String ein r oder ein raw string vorangestellt ist und dieser String aus einem ungültigen Escape-Zeichen wie \x besteht, dann tritt kein Fehler auf.
Hier ist ein Beispielcode.
print("Hi\xHow are you?")
Ausgabe:
File "<ipython-input-15-1056651b28e1>", line 1
print("Hi \x How are you?")
^
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 3-4: truncated \xXX escape
Beachten Sie, dass der Zeichenkette kein r vorangestellt ist und sich zwischen der Zeichenkette ein ungültiges Escape-Zeichen befindet. Daher ist ein Fehler aufgetreten.