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の”:”(コンマ)は特に忘れやすいです。”:”と最後に付けましょう。