まず結論

Pythonのエラーは、最後の行から見ます。

NameError: name 'namu' is not defined

この例なら、NameError がエラー名です。

エラー名を見ると、何を確認すればよいか分かりやすくなります。

こんなときに読む記事です

次のようなときに使います。

  • エラー文が長くて怖い
  • どこから読めばいいか分からない
  • よく見るエラー名だけ先に知りたい

ここでは、代表的なエラーだけを短く見分けます。

絵で見るなら

モコが長いエラーの紙を下から見て、最後の赤いラベルだけ先に読むイメージです。

全部を一度に読まず、まずエラー名を見ます。

SyntaxError

SyntaxError は、Pythonが文の形を読めないときに出ます。

よくある原因は、コロン、カッコ、クォートの忘れです。

if score >= 60
    print("合格")

この例では、if の行の最後に : がありません。

NameError

NameError は、Pythonがその名前を知らないときに出ます。

name = "モコ"
print(namu)

name と作ったのに、namu と書いています。 変数名のつづり、大文字小文字を確認します。

IndentationError

IndentationError は、字下げがずれているときに出ます。

if score >= 60:
print("合格")

if の中身なのに、print() が字下げされていません。

Pythonでは字下げがコードのまとまりを表します。

ValueError

ValueError は、値の形が合わないときに出ます。

age = int("12歳")

int() は整数にできる文字列を期待します。 12歳 は単位が混ざっているので、整数として読めません。

迷ったら最後の行を見る

エラー文が長いときも、まず最後の行を見ます。

ValueError: invalid literal for int() with base 10: '12歳'

次に、行番号と、その近くのコードを確認します。

全部を一度に理解しようとしなくて大丈夫です。

手を動かすミニ練習

次のコードを写して、わざとエラーを見てみましょう。

name = "モコ"
print(namu)

最後の行に NameError と出ることを確認します。