文字列リテラルのスキャン中にSyntaxError EOL

文字列リテラルのスキャン中にSyntaxError EOL?

構文エラーは、プログラムが実行される前に検出されます。 通常、それは単なる入力ミスまたは構文上の間違いです。 Pythonでのこのようなエラーは、文字列リテラルのスキャン中のSyntaxError EOLです。

このSyntaxErrorは、インタプリタが文字列リテラルをスキャンしてEOL(‘End of Line’)にヒットしている間に発生します。 ただし、EOLの前に特定の文字が見つからない場合は、エラーが発生します。

私たちは例の助けを借りて、より多くのそれを理解してみましょう。

“文字列リテラルのスキャン中にSyntaxError EOL”とは何ですか?

Pythonインタプリタがコード行が終了する前に特定の文字または文字のセットを見つけられない場合、SyntaxError EOL(行末)エラーが発生します。 エラーが発生すると、コードの実行が停止されます。

  • 文字列を閉じるための引用符が欠落しています
  • 文字列は1行を超えて拡張します

文字列を閉じるための引用符が欠落しています:

文字列を閉じているときに、逆カンマ(シングルまたはダブル)を追加するのを忘れてしまうことがよくあります。 これが起こると、Pythonインタプリタは文字列をスキャンしている間に行の終わりを見つけることができません。 したがって、SyntaxError EOLエラーが発生します。

1:

MyList = if not MyList: print("MyList is emptyelse: print("MyList is not empty")

出力:

File "main.py", line 3 print("MyList is empty ^SyntaxError: EOL while scanning string literal

上記のコードでは、空のリストMyListを初期化し、if-elseブロックを使用して’MyList’が空であるかどうかを出力しました。 Ifブロック内では、print文は文字列を印刷するために使用されます。 しかし、文字列は最後に二重反転カンマがありません。 また、カンマがないため、Pythonインタプリタは文字列の終わりを見つけることができません。

したがって、SyntaxErrorエラーが発生します。

SyntaxError EOL文字列リテラルのスキャン中

ソリューション

文字列は常に一重引用符または二重引用符で囲まれていることを確認してください。

正しいコード

llist = if not llist: print("List is empty")else: print("List is not empty")

出力

MyList is empty

文字列は1行を越えて拡張します

Pythonでは、単一または二重反転カンマで囲まれた文字列を単一の行を越えて拡張することはできません。 そうしようとすると、”SyntaxError EOL while scanning the string literal occurs”というエラーがポップアップします。 文字列を複数行で拡張したい場合は、トリプル反転カンマ(シングルまたはダブル)で囲む必要があります。

2:

ttuple = ()if not ttuple: print("Tuple isempty")else: print("Tuple is not empty")

出力 :上記のコードでは、空のタプル’MyTuple’を初期化し、’MyTuple’が空であるかどうかを印刷するためにif-elseブロックを使用しました。 Ifブロック内では、print文は文字列を印刷するために使用されます。 しかし、文字列は複数行に展開されます。 そして、pythonインタプリタによって解釈されません。 したがって、エラーが発生します。

解決策

文字列全体を単一行内に保持しようとします。

:

MyTuple = ()if not MyTuple: print("MyTuple is empty")else: print("MyTuple is not empty")

出力:

MyTuple is empty

注:文字列を複数行で初期化する場合。 次に、文字列を囲むために、single(”‘Single quotes”‘)またはdouble(”””Double quotes””””)のいずれかのトリプル反転カンマを使用します。

:

MyTuple = ()if not MyTuple: print("""MyTuple is empty""")else: print("MyTuple is not empty")

出力:

MyTuple isempty

結論

上記で説明したすべてのシナリオが、文字列リテラルエラーのスキャン中にSyntaxError EOLを防ぐのに役立つことを願っています。 あなたが避けなければならないもう一つの間違いは不一致の引用語句を使用している。 文字列を閉じるときは、一重引用符で始まる場合は二重引用符で終わる必要があることを確認してください。

You might also like

コメントを残す

メールアドレスが公開されることはありません。