Warum die Terminierung durch einen einzelnen Backslash in Pythons Raw-Strings verboten ist
Obwohl es intuitiv erscheinen mag, dass Raw-Strings in Python eine beliebige Anzahl von zulassen sollten Wenn Sie Backslashes als normale Zeichen verwenden, gibt es einen bestimmten Grund für die Beschränkung auf ungerade Zahlen Backslashes.
Die verborgene Natur von Backslashes in Rohzeichenfolgen
Der Schlüssel zum Verständnis dieser Einschränkung liegt in der Erkenntnis, dass Backslashes in Rohzeichenfolgen einen doppelten Zweck erfüllen. Entgegen der landläufigen Meinung handelt es sich nicht um normale Charaktere. In der Python-Dokumentation heißt es:
„Wenn ein ‚r‘- oder ‚R‘-Präfix vorhanden ist, wird ein auf einen Backslash folgendes Zeichen ohne Änderung in die Zeichenfolge eingefügt und alle Backslashes bleiben in der Zeichenfolge.“
Das bedeutet, dass jedes Zeichen, das auf einen Backslash folgt, ein integraler Bestandteil der Rohzeichenfolge wird. Zum Beispiel:
Das Dilemma mit ungeradzahligen Backslashes
Betrachten Sie mit diesem Verständnis die folgende Rohzeichenfolge:
Dies enthält 'a', 'b', 'c', '', '''. Wenn der Parser auf einen Backslash in einer Rohzeichenfolge stößt, geht er davon aus, dass es zwei Zeichen gibt (den Backslash und ein Zeichen danach). In unserem Beispiel ist der Backslash das letzte Zeichen und hinterlässt kein abschließendes Anführungszeichen.
Daher erlaubt Python keine ungeraden Backslashes in Rohzeichenfolgen, da diese das Schlusszeichen der Zeichenfolge verbrauchen würden, was zu einem Syntaxfehler führen würde.
Das obige ist der detaillierte Inhalt vonWarum ist eine ungerade Anzahl von Backslashes in Pythons Raw-Strings verboten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!