Tech-Joho.info

SyntaxError: invalid syntax | Python用語辞典

Python独学ならTech-Joho TOP > Python用語辞典 > SyntaxError: invalid syntax

Pythonでプログラミングをして動かした時、”SyntaxError: invalid syntax”というエラーが発生して処理が止まってしまうことがあります。このエラーの意味や、このエラーが表示されたときの修正方法を解説します。

SyntaxError: invalid syntax の意味

日本語に直訳すると、「構文 エラー: 不適切な構文」という意味です。 構文 とは、この場合、Pythonの書き方のことです。つまり、このエラーの意味はPythonの書き方が間違っているということです。

書き方が間違っているといっても、このエラーメッセージからは、具体的にどこが間違っているか、分かりません。実は、このエラーが出る間違いは非常に沢山の種類があります。

しかし、このエラーメッセージの全体をよく読むと、 修正方法を見つけるヒントがあります。

エラーメッセージの構造

エラーの全体は下のようになっているはずです。

  File "myfor.py", line 3
    for i in range(0, x)
                       ^
SyntaxError: invalid syntax

“SyntaxError: “~というメッセージの上に、プログラム喉の部分が間違っているか、”^”で示してあります。最初の行には、どのファイルの何行目に間違いがあるかも書いてあります。

上のプログラムだと、myfor.pyというファイル(File “mfor.py”)の3行め(line 3)に間違いがあります。

“^”のある場所を探してみると、for文の最後にあります。これは、必要な”:”(コロン)がないためにエラーが発生しています。
for文の書き方は、” for xxx in xxx xxxx : “という感じなので、forの行の最後に”:”が必要です。

詳しくは下のリンク先をご覧ください。

たくさんのデータで同じ処理を繰り返す

考えられる原因となおし方

上のfor文の”:”不足はあくまでひとつの例です。考えられる原因は他にもたくさんあります。そのうち、初心者がおこしやすいものをいくつか解説します。

for文のinが無い

  File "myfor.py", line 3
    for i  range(0, x):
               ^
SyntaxError: invalid syntax

上の例と同じですが、for文に必要な”in”が無いということです。

ifの”:”が無い

  File "myfor.py", line 3
    if x > 0
           ^

ifにも”:”が必要です。これも忘れてしまうことがあります。

elseの”:”が無い

File "myfor.py", line 5
    else
       ^
SyntaxError: invalid syntax

これも上と似ていますが、elseの”:”(コンマ)は特に忘れやすいです。”:”と最後に付けましょう。