Doppelte Darstellung von Backslashes in Python-Strings
Wenn man in einem Python-String auf Sequenzen von Backslashes () stößt, beobachtet man häufig einen Duplizierungseffekt . Dieses Verhalten ergibt sich aus der Art und Weise, wie Python Zeichenfolgen intern darstellt.
Darstellung versus tatsächlicher Inhalt
Wenn Sie einer Variablen (z. B. my_string) eine Zeichenfolge zuweisen, bleibt die Variable bestehen eine interne Darstellung dieser Zeichenfolge. Diese Darstellung wird mit der Methode __repr__() erstellt. Wenn Sie jedoch die Zeichenfolge drucken (z. B. print(my_string)), wird der tatsächliche Inhalt der Zeichenfolge ohne doppelte Backslashes angezeigt.
Betrachten Sie beispielsweise die Zeichenfolge:
my_string = "why\does\it\happen?"
Die Methode repr() konvertiert diese Zeichenfolge in:
'why\does\it\happen?'
Beachten Sie die doppelten Backslashes in der Darstellung. Wenn Sie jedoch „my_string“ drucken, erhalten Sie Folgendes:
why\does\it\happen?
Warum die Duplizierung?
Python verwendet Backslashes als Escape-Zeichen. Beispielsweise steht n für eine neue Zeile und t für einen Tabulator. Um zwischen einer beabsichtigten Escape-Sequenz und einem wörtlichen Backslash zu unterscheiden, maskiert Python jeden in der String-Darstellung verwendeten Backslash mit einem anderen Backslash.
Auflösen der Verwirrung
Um das Tatsächliche zu erhalten Für den Inhalt einer Zeichenfolge, einschließlich einzelner Backslashes, verwenden Sie die Funktion print(). Wenn Sie die Darstellung der Zeichenfolge benötigen, können Sie mit der integrierten Funktion repr() darauf zugreifen:
print(my_string) # why\does\it\happen? print(repr(my_string)) # 'why\does\it\happen?'
Backslashes mit Escapezeichen versehen
Wenn Sie beabsichtigen, a Wenn Sie einen literalen Backslash in einer Zeichenfolge verwenden möchten, müssen Sie ihn mit einem weiteren Backslash maskieren. Dadurch wird verhindert, dass Python den Backslash als Escape-Zeichen interpretiert. Zum Beispiel:
"this\text\is\what\you\need" # Produces: this\text\is\what\you\need
Das obige ist der detaillierte Inhalt vonWarum zeigt Python in der String-Darstellung doppelte Backslashes an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!