EOL beim Scannen von String-Literalen in Python
In diesem Tutorial wird der Syntaxfehler EOL beim Scannen von String-Literalen in Python erläutert.
Rohe Zeichenketten in Python
Rohe Zeichenketten werden zum Angeben von regulären Ausdrücken in Python verwendet. Vor dem beginnenden Anführungszeichen wird ein Rohstring durch ein r
oder R
deklariert. Eine unformatierte Zeichenkette benötigt keine Escape-Zeichen und behandelt den umgekehrten Schrägstrich gemäß der Konvention als literale Zeichenkette. Der folgende Codeausschnitt demonstriert die Funktionsweise einer unformatierten Zeichenkette.
print(r"\t\\")
Ausgabe:
\t\\
Sehen wir uns nun an, wie dies in einem normalen String aussehen würde.
print("\t\\")
Ausgabe:
\
Der Unterschied ist glasklar. Wenn wir einen Rohstring verwenden, betrachtet der Python-Interpreter \t\\
als \t\\
, aber wenn wir einen regulären String verwenden, betrachtet der Python-Interpreter \t
als Tabulator und das folgende \
als Escape-Zeichen für das letzte \
.
EOL beim Scannen von String-Literalen in Python
Die einzige Einschränkung bei diesen rohen Strings besteht darin, dass wir sie nur mit einer geraden Anzahl von Backslashes beenden können. Wenn ein Rohstring mit einer ungeraden Anzahl von Backslashes endet, zeigt der Python-Interpreter den Syntaxfehler EOL while scanning string literal
. Dies liegt daran, dass das Anführungszeichen auch in unformatierten Zeichenketten durch einen umgekehrten Schrägstrich maskiert werden kann. Bei einer ungeraden Anzahl von Backslashes am Ende denkt der Interpreter, dass der letzte Backslash verwendet wird, um das schließende Anführungszeichen zu maskieren, und sucht weiter nach dem Ende der Zeichenkette. Dieses Phänomen wurde im folgenden Codierungsbeispiel demonstriert.
print(r'\t\\\')
Ausgabe:
File "<ipython-input-1-d2ab522bcdab>", line 1
print(r'\t\\\')
^
SyntaxError: EOL while scanning string literal
Wir haben den Fehler EOL while scanning string literal
beim Schreiben von Rohstrings in Python demonstriert.
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedInVerwandter Artikel - Python String
- Entfernen Kommas aus String in Python
- Wie man prüft, ob eine Zeichenkette auf pythonische Weise leer ist
- Konvertieren einer Zeichenkette in einen Variablennamen in Python
- Wie man Leerzeichen in einem String in Python entfernt
- Wie man in Python Zahlen aus einer Zeichenkette extrahiert
- Wie man in Python String in datetime konvertiert