Python で EOF While Parsing エラーを修正
SyntaxError: unexpected EOF while parsing
は、インタープリターがコードブロックを実行する前にファイルの終わりに到達したときに発生します。
これは多くの場合、コードの一部が欠落していることを示しています。構文エラーを見つけて修正する必要があります。
Pycharm などの最新の Python インタープリターは、修正が必要なコードセクションを強調することがよくあります。多くの場合、エラーを解決するには、欠落しているコードのセクションを追加する必要があります。
for
ループを使用するには、多くの場合、コードにコードを追加する必要があります。本文にコードを追加しないと、unexpected EOF while parsing
というエラーが発生します。
for
ループは、反復可能なものを反復処理するためによく使用されます。シナリオによっては、for
ループの本体にコードを追加できない場合があります。これは、このようなエラーが発生するシナリオの 1つです。
names = ['Tesla', 'Lucid', 'Samsung']
for company in names:
出力:
File "<string>", line 14
^
SyntaxError: unexpected EOF while parsing
正しい Python 構文によれば、コンパイラーはインデント後にコードを実行することを期待しています。
インデントブロック内のこの新しいコードは、for
ループの本体の一部を形成します。したがって、ループの本体に、ファイルの予期しない終わりを回避し、正しい Python 構文に準拠するためのコードが含まれていることを確認する必要があります。
以下のコードに示すように、このエラーを修正できます。
names = ["Tesla", "Lucid", "Samsung"]
for company in names:
result = company.upper()
print(result)
出力:
TESLA
LUCID
SAMSUNG
このエラーは、if-else
ステートメントを操作するときにも発生する可能性があります。if
ステートメントは、特定の条件でコードのブロックを実行するために使用されます。if
ステートメントのインデントされたブロックは、すべての if
ステートメントの本体を形成します。
区切り文字および関数の定義として使用されることは別として、完全なコロンは、if
ステートメントのコードブロックの開始を示します。コロン全体の前のブロックにコードを記述しないと、エラーの解析中に EOF ファイル
が発生します。
以下は、このエラーがどのように発生するかを示す例です。
company_name = "tesla"
if company_name.upper() == True:
出力:
File "<string>", line 4
^
SyntaxError: unexpected EOF while parsing
このエラーは、以下に示すように、if
ステートメントの本体にコードが含まれていることを確認することで修正できます。
company_name = "tesla"
if company_name.isupper() == True:
print(company_name.lower())
else:
print(company_name.upper())
出力:
TESLA
if
ステートメントの直後に続く else
ステートメントの本文にコードが記述されていない場合、インタープリターは同様にエラーEOF while parsing
を発生させます。if
ステートメントブロックに有効なコードがある場合でも、このエラーがスローされます。
したがって、成功する if-else
ステートメントを作成するには、両方のコードブロックが完成している必要があります。そうしないと、エラー EOF while parsing
が発生してしまいます。
number = input("Please Enter a number: ")
if number % 2 == 0:
print("This is an even number:")
else:
出力:
File "<string>", line 7
^
SyntaxError: unexpected EOF while parsing
このエラーを修正するには、他の部分に完全な本体があることを確認する必要があります。一部の if
ステートメントは else
ステートメントを必要としません。このような場合、else
ステートメントはまったく必要ありません。
number = int(input("Please Enter a number: "))
if number % 2 == 0:
print("This is a even number")
else:
print("This is not an even number")
出力:
Please Enter a number: 23
This is not an even number
このエラーは、while
ループの本体が定義されすぎている場合にも発生します。同様に、while
ループの本体が提供されていることを確認することで、エラーを修正できます。
i = 10
while i < 6:
出力:
File "<string>", line 3
^
SyntaxError: unexpected EOF while parsing
関数の本体が提供されていない場合、関数を操作するときにもエラーが発生する可能性があります。
複数の関数を持つ大規模なプログラムでは、将来的に関数を実装したいと思うかもしれません。したがって、関数の本体をすぐに定義する必要はありません。
また、その機能をまだ決定していない場合もあります。以下の関数は、2つの数値の合計を計算することになっています。
ただし、関数が実行する必要があることを示すステートメントを含む本文は宣言されていません。これにより、以下に示すようにエラーが発生します。
def add_numbers(num1, num2):
出力:
File "<string>", line 3
^
SyntaxError: unexpected EOF while parsing
このエラーは、次の例に示すように、関数を定義するステートメントを記述することで修正できます。
def add_numbers(num1, num2):
result = num1 + num2
print(result)
add_numbers(23, 45)
出力:
68
関数の実装内容を指定したくない場合は、キーワード pass
を使用することもできます。インタプリタは pass
ステートメントを無視するため、何も実行されません。
このステートメントを使用して、すぐに実装したくない関数を実行しないようにすることもできます。次の例に示すように、キーワード pass
を使用して、エラーEOF の解析中
を回避できます。
def add_numbers(num1, num2):
pass
出力:
構文解析中の予期しない EOF は、括弧を使用する関数またはステートメントで括弧が欠落している場合にも発生する可能性があります。
print 関数および他の多くの組み込み Python 関数は、括弧を使用して実行されます。急いでコードを書くとき、そのような小さな構文エラーはしばしば無意識のうちに作られることがあります。これにより、次の例に示すように、解析中の EOF
というエラーが発生します。
def say_hello():
print("Hello user welcome on board"
出力:
File "<string>", line 2
^
SyntaxError: unexpected EOF while parsing
このエラーは、括弧が開いたままになっていないことを確認することによってのみ解決できます。
現代の通訳者は、次の行に進む前にエラーがあることを通知することがよくあります。このエラーは、自己定義関数にも適用されます。
関数を不適切に呼び出すと、このエラーも発生します。以下のコードは、自己定義関数を呼び出す不適切な方法が両方の括弧の使用の失敗を構成することを示しています。
def add_sum(num1, num2):
print(num1 + num2)
add_sum(23, 78
出力:
File "e:\CodeBerry\eoferroinpython.py", line 8
^
SyntaxError: unexpected EOF while parsing
Python の try...except
は、プログラムが停止して処理する可能性のあるエラーがコードに存在するかどうかをそれぞれテストします。
try
ブロックはスタンドアロンメソッドとして機能することはできず、常に except
ブロックを伴う必要があります。except
ブロックにコードを指定せずにピースをテストするために try
ブロックを使用すると、以下のように SyntaxError: unexpected EOF while parsing
が発生します。
number = int(input("Please enter a number:"))
def add_numbers(number):
try:
print(number + 2)
except ValueError:
出力:
File "<string>", line 7
^
SyntaxError: unexpected EOF while parsing
Isaac Tony is a professional software developer and technical writer fascinated by Tech and productivity. He helps large technical organizations communicate their message clearly through writing.
LinkedIn関連記事 - Python Error
- AttributeError の解決: 'list' オブジェクト属性 'append' は読み取り専用です
- AttributeError の解決: Python で 'Nonetype' オブジェクトに属性 'Group' がありません
- AttributeError: 'generator' オブジェクトに Python の 'next' 属性がありません
- AttributeError: 'numpy.ndarray' オブジェクトに Python の 'Append' 属性がありません
- AttributeError: Int オブジェクトに属性がありません
- AttributeError: Python で 'Dict' オブジェクトに属性 'Append' がありません