3
4

More than 1 year has passed since last update.

Python 構文エラーについて

Posted at

はじめに

構文エラー(SyntaxError)は、
使用しているプログラムコードが、言語の構文に違反している場合に起こるエラーのことです。

print("pythonで書いています。"
  Cell In [90], line 1
    print("pythonで書いています。"
                          ^
SyntaxError: incomplete input

この場合は、
カッコの閉じ忘れでエラーが起きています。

上記のようなエラーはよく起こるため、気をつける必要があります。
他にもいくつか代表的な構文エラーがあるので紹介していきます。

構文エラーの紹介

代表的なものとして以下が挙げられます。

クォートのつけ忘れ

print("pythonで書いています。)
Cell In [91], line 1
    print("pythonで書いています。)
          ^
SyntaxError: unterminated string literal (detected at line 1)

カッコの閉じ忘れ

print("pythonで書いています。"
  Cell In [90], line 1
    print("pythonで書いています。"
                          ^
SyntaxError: incomplete input

コロンのつけ忘れ

def m()
    return ("pythonで書いています。")
  Cell In [97], line 1
    def m()
           ^
SyntaxError: expected ':'

インデントの崩れ

def m():
return ("pythonで書いています。")
  Cell In [98], line 2
    return ("pythonで書いています。")
    ^
IndentationError: expected an indented block after function definition on line 1

全角スペースの利用

def m():
 return ("pythonで書いています。")
Cell In [99], line 2
    return ("pythonで書いています。")
    ^
SyntaxError: invalid non-printable character U+3000

== の代わりに = を使う

def f(x):
    if x = 1:
        return x
Cell In [110], line 2
    if x = 1:
       ^
SyntaxError: invalid syntax. Maybe you meant '==' or ':=' instead of '='?

構文エラーの対処法

エラーの対処としては、

  • エラーメッセージをよく読む
  • 原因を推察
    することが必要です。

例として以下の場合で構文エラーになったと仮定して対処します。

print("pythonで書いています。"
  Cell In [90], line 1
    print("pythonで書いています。"
                          ^
SyntaxError: incomplete input
  1. エラーが起こると

    • SyntaxError
    • IndentationError
      などと出力されるので確認します。
      ここでは、「SynatxError」と出力されています。
  2. それに付随するメッセージが、
    構文エラーの具体的内容とおおよその位置を説明してくれます。
    ここでは、「incomplete input」と出力されており、
    翻訳すると、不完全入力とでています。
    文章を見返すと、カッコのつけ忘れがありました。

  3. 訂正し再度実行

print("pythonで書いています。")

pythonで書いています。

エラーを解消できました。

今回の例のように、
エラーメッセージの説明は、必ずしも分かり易くない場合があります。
ですが、原因の位置を絞りこむには有用です。

終わりに

初めはエラーメッセージが出ると焦ったり、イライラすることがあります。
ですが、今回のように対応していくことで冷静に対応できるかと思います。

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4