EOL beim Scannen von String-Literalen in Python

Muhammad Maisam Abbas 22 Oktober 2021
  1. Rohe Zeichenketten in Python
  2. EOL beim Scannen von String-Literalen in Python
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.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

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.

LinkedIn

Verwandter Artikel - Python String