Da wir wissen, dass eine Programmiersprache wie Python eine interpretierte Sprache ist, bedeutet dies im Wesentlichen, dass jeder Block oder jede Codezeile einzeln verarbeitet wird, anstatt das gesamte Programm insgesamt in einen Low-Level-Code umzuwandeln.
Immer wenn der Interpreter von Python eine Codezeile scannt und etwas Ungewöhnliches feststellt, löst er einen Fehler aus, der als Syntaxfehler bezeichnet wird. Im Allgemeinen sind eine fehlende Klammer, ein fehlendes Anführungszeichen am Ende und andere grundlegende Anomalien in der Syntax die Ursache für die Fehler.
Im folgenden Tutorial werden wir einen der als EOL bekannten Syntaxfehler in Python entdecken, der normalerweise auftritt, wenn wir versuchen, ein String-Literal zu scannen.
Die Bedeutung von EOL verstehen
Wir müssen die Bedeutung von EOL effektiv verstehen, bevor wir ein Problem lösen können. EOL ist die Abkürzung für „End of Line“. Der EOL-Fehler bedeutet, dass der Interpreter von Python beim Scannen des String-Literals das Ende der Zeile erreicht hat.
Die Zeichenfolgenliterale, auch Konstanten genannt, müssen in einfache oder doppelte Anführungszeichen eingeschlossen werden. Das Erreichen des „Zeilenendes“ beim Scanversuch bedeutet, dass wir das letzte Zeichen der Zeichenfolge erreicht haben und nicht auf die abschließenden Anführungszeichen gestoßen sind.
Betrachten wir ein einfaches Beispiel, das zeigt, wie der EOL-Fehler ausgelöst wird.
Beispiel:
# defining a string value my_string = 'This is my string literal, and it is broken... # printing the string value print('String:', my_string)
Ausgabe:
File 'D:Python ernarypy.py', line 2 my_string = 'This is my string literal, and it is broken... ^ SyntaxError: EOL while scanning string literal
Erläuterung:
Im obigen Codeausschnitt haben wir ein String-Literal definiert; Wir haben jedoch ein Anführungszeichen am Ende der Zeichenfolge übersehen, wodurch das Zeichen erhöht wurde Syntax-Fehler wird EOL genannt, während diese Zeichenfolge für die Benutzer gedruckt wird.
Im Ausgabeabschnitt können wir einen kleinen Pfeil beobachten, der auf das letzte Zeichen der Zeichenfolge zeigt, was zeigt, dass der Fehler aufgetreten ist, als das Programm versuchte, dieses Segment der Anweisung zu analysieren.
Nachdem wir das Problem nun verstanden haben, wollen wir einige Fälle verstehen, in denen dieser Fehler beim Ausführen eines Python-Codes auftreten kann.
Behebung des „Syntaxfehlers: EOL beim Scannen des Zeichenfolgenliterals“.
Dieser Fehler kann bei der Arbeit an einem Python-Programm in vier Hauptsituationen auftreten. Diese vier Hauptsituationen sind wie folgt:
- Das abschließende Anführungszeichen fehlt
- Verwendung des falschen abschließenden Anführungszeichens
- String-Konstante, die sich über mehrere Zeilen erstreckt
- Verwendung eines Backslashs vor dem abschließenden Anführungszeichen
Beginnen wir, jede dieser Situationen zu verstehen und versuchen, sie zu umgehen.
Das abschließende Anführungszeichen fehlt
Wie im vorherigen Codeausschnitt erläutert, löst der Python-Interpreter immer dann einen Syntaxfehler aus, wenn er das Ende des Zeichenfolgenliterals erreicht und feststellt, dass das Anführungszeichen fehlt.
Beispiel:
# defining a string value my_string = 'This is my string literal, and it is broken... # printing the string value print('String:', my_string)
Erläuterung:
Wir können beobachten, dass das Anführungszeichen am Ende der Literalzeichenfolge fehlt, was ebenfalls den Syntaxfehler rechtfertigt. In jeder Sprache gibt es einige grundlegende Syntaxregeln, deren Verletzung zu Fehlern führt.
Betrachten wir nun die folgende Syntax als Lösung für das obige Problem.
Lösung:
# defining a string value my_string = 'This is my string literal, and it is broken...' # printing the string value print('String:', my_string)
Ausgabe:
String: This is my string literal, and it is broken...
Erläuterung:
Im obigen Codeausschnitt können wir beobachten, dass wir das Anführungszeichen am Ende der Literalzeichenfolge eingefügt haben. Infolgedessen wird die Zeichenfolge für die Benutzer erfolgreich gedruckt, ohne dass ein Syntaxfehler auftritt.
Verwendung des falschen abschließenden Anführungszeichens
Wir können es nutzen ' ' sowie ' ' um eine bestimmte String-Konstante in Python einzuschließen. Allerdings verwendet ein Programmierer häufig ein falsches Anführungszeichen am Ende des Zeichenfolgewerts. Eine solche Situation führt dazu, dass das Programm einen Syntaxfehler in Bezug auf EOL auslöst.
Betrachten wir eine solche Situation im folgenden Beispiel:
Beispiel:
# defining a string value my_string = 'This is my string literal with wrong quotation mark at the end.' # printing the string value print('String:', my_string)
Ausgabe:
File 'D:Python ernarypy.py', line 2 my_string = 'This is my string literal with wrong quotation mark at the end.' ^ SyntaxError: EOL while scanning string literal
Erläuterung:
Im obigen Codeausschnitt haben wir am Ende des Zeichenfolgewerts das falsche Anführungszeichen verwendet, das zu einem Syntaxfehler führt.
Wir können ein solches Problem vermeiden, indem wir das entsprechende Anführungszeichen am Ende der Zeichenfolge verwenden, wie im folgenden Codeausschnitt gezeigt.
Lösung:
# defining a string value my_string = 'This is my string literal with wrong quotation mark at the end.' # printing the string value print('String:', my_string)
Ausgabe:
String: This is my string literal with wrong quotation mark at the end.
Erläuterung:
Wie wir sehen können, haben wir im obigen Codeausschnitt das passende Anführungszeichen am Ende der Zeichenfolge verwendet, das uns hilft, EOL-Fehler zu vermeiden.
String-Konstante, die sich über mehrere Zeilen erstreckt
Es gibt verschiedene Python-Anfänger, die den Fehler machen, Anweisungen auf mehr als eine Zeile auszudehnen. Im Gegensatz zu anderen Sprachen wie C++ und Java berücksichtigt Python eine neue Zeile als Ende der Anweisung ';' als Ende von Aussagen.
Betrachten wir ein Beispiel, das dasselbe Problem demonstriert.
Problembeispiel:
# defining a string value my_string = 'This is my string literal... this is my new line' # printing the string value print('String:', my_string)
Ausgabe:
File 'D:Python ernarypy.py', line 2 my_string = 'This is my string literal... ^ SyntaxError: EOL while scanning string literal
Erläuterung:
was ist awt
Im obigen Codeausschnitt können wir beobachten, dass der Code möglicherweise normal aussieht. Sobald jedoch die nächste Zeile beginnt, beendet der Python-Interpreter diese Anweisung und löst einen Syntaxfehler aus, da die Zeichenfolgenkonstante nicht eingeschlossen wurde.
Wir können dieses Problem jedoch mit verschiedenen Methoden lösen, wie unten gezeigt:
Lösung 1: Verwenden von „ “, um der Zeichenfolgenkonstante den Effekt einer neuen Zeile zu verleihen
# defining a string value my_string = 'This is my string literal... this is my new line' # printing the string value print('String:', my_string)
Ausgabe:
String: This is my string literal... this is my new line
Erläuterung:
Im obigen Codeausschnitt haben wir Folgendes eingefügt 'N' in der String-Konstante, um ihr den Effekt einer neuen Zeile zu verleihen. Infolgedessen unterteilt die String-Konstante die Anweisung in mehrere Zeilen.
Betrachten wir nun eine andere Lösung.
Lösung 2: Verwenden Sie dreifache Anführungszeichen „“ oder „“, um mehrzeilige Zeichenfolgenkonstanten zu speichern
# defining a string value my_string = '''This is my string literal... this is my new line''' # printing the string value print('String:', my_string)
Ausgabe:
String: This is my string literal... this is my new line
Erläuterung:
Im obigen Codeausschnitt haben wir das dreifache Anführungszeichen verwendet: ''' um mehrzeilige String-Konstanten zu speichern.
Verwendung eines Backslashs vor dem abschließenden Anführungszeichen
Der Backslash '' ist für das Escapezeichen der Zeichenfolge verantwortlich und verursacht den Syntaxfehler.
Betrachten wir das folgende Beispiel.
Beispiel:
# storing a directory path my_string = 'D:PythonMy_Folder' # printing the string value print('String:', my_string)
Ausgabe:
File 'D:Python ernarypy.py', line 2 my_string = 'D:PythonMy_Folder' ^ SyntaxError: EOL while scanning string literal
Erläuterung:
Im obigen Codeausschnitt haben wir einen Backslash verwendet '' um die Pfade der Ordner voneinander zu trennen. Während der Ausführung des Programms löste der Python-Interpreter jedoch den Syntaxfehler aus.
Der letzte Backslash vor dem Anführungszeichen maskiert die Zeichenfolgenkonstante und wird vom Python-Interpreter berücksichtigt ' als einzelne Figur. Diese Escape-Sequenz wird in ein Anführungszeichen übersetzt (') .
Wir können dieses Problem mit dem folgenden Codeausschnitt lösen.
Lösung:
# storing a directory path my_string = 'D:\Python\My_Folder\' # printing the string value print('String:', my_string)
Ausgabe:
String: D:PythonMy_Folder
Erläuterung:
Im obigen Codeausschnitt haben wir verwendet '\' in der String-Konstante. Infolgedessen führt der Python-Interpreter diese Zeichenfolge aus, ohne einen Fehler auszulösen.