本文へスキップ
ひもとくAI

エラーメッセージとの付き合い方

レッスン 5/5

エラーは「敵」ではない

プログラミングをしていると、エラーは日常的に発生します。経験豊富なプログラマーでも、エラーを一切出さずにコードを書くことはまずありません。エラーメッセージは、「ここがおかしいですよ」とコンピュータが教えてくれている、いわば親切なヒントです。

例えば、次のようなコードを実行するとエラーになります。

print(nam)
NameError: name 'nam' is not defined

これは「namという名前の変数は定義されていません」という意味です。おそらくnameと書きたかったのにnamとタイプミスをした、という状況でしょう。

エラーメッセージには、大きく分けて2つの情報が含まれています。

  1. エラーの種類(NameErrorなど):どんな種類の問題が起きたか
  2. エラーの詳細(name 'nam' is not defined):具体的に何が原因か

この2つを読み取れるようになると、エラーへの苦手意識がぐっと減ります。次のスライドで、よく出会うエラーの種類を確認しましょう。

よく出会うエラーの種類

代表的なエラーを4つ紹介します。この後の演習で、実際にこれらのエラーに遭遇することがあると思いますが、慌てず種類を確認してみてください。

NameError:定義していない名前を使おうとした

print(nam)  # nameのタイプミス

TypeError:データ型が合わない操作をしようとした

"3" + 4  # 文字列と数値は+で直接つなげられない

IndexError:リストに存在しない番号を指定した

scores = [80, 65, 90]
scores[10]  # scoresには10番目の要素がない

IndentationError / SyntaxError:字下げ(インデント)や文法が間違っている

def f(x):
return x  # returnの前に字下げ(スペース)が必要

このコースの演習では、こうしたエラーが出た場合、エラーの原因をできるだけ分かりやすい日本語で説明するようにしています。エラーが出ても「失敗した」と捉えず、「原因を1つ特定できた」と捉えて、修正して再提出してみましょう。

演習

演習を読み込んでいます…