Pythonエラー一覧と対処法|エラーメッセージの読み方から種類別の解決手順まで

エラーが出ると、それだけで手が止まってしまう——初学者がつまずく最大の原因はここです。しかしエラーメッセージは、Pythonが「どこで」「何が」おかしかったかを教えてくれている情報です。読み方さえ分かれば、ほとんどは自力で解決できます。

この記事では、まずメッセージの読み方を押さえ、そのうえでエラーを種類別に整理します。個別のエラーは関連記事に分けているので、出ているメッセージから辿ってください。

まずエラーメッセージの読み方

下から読む

エラーが出ると数行から数十行が表示されます。最も重要なのは最後の1〜2行です。ここにエラーの種類と説明が書かれています。

その上に並んでいるのはトレースバック(呼び出しの経路)で、「どこを通ってここに来たか」を示しています。原因の場所を探すときに使いますが、最初に見るべきは最終行です。

3つの情報を取り出す

  • エラーの種類:最終行の先頭。TypeError、NameError など
  • 説明:種類のあとに続く文。何が問題かが書かれています
  • 発生位置:トレースバックの最下部にあるファイル名と行番号

この3つをそのまま検索すれば、大半は解決します。ただし変数名など自分固有の部分は外して検索してください。

エラーは2種類ある

  • 構文エラー(SyntaxError):実行される前に止まります。書き方の誤りです
  • 実行時エラー(例外):途中まで動いてから止まります。処理の内容に問題があります

構文エラーは表示された行より手前に原因があることが多いのが特徴です。閉じ括弧の不足やコロンの抜けは、次の行で検出されます。

種類別:構文・書き方のエラー

実行される前に止まるものです。慣れれば数秒で直せます。

インデントの考え方そのものはPythonインデント完全ガイドで扱っています。

種類別:型に関するエラー(TypeError)

「その型ではその操作はできません」という意味です。文字列と数値を足そうとした、といった場面で出ます。

NoneType系は「関数が何も返していない」ことが原因であることが大半です。returnの書き忘れを疑ってください。

種類別:属性・名前のエラー

種類別:添字・キーのエラー

要素数はlen()で確認する習慣をつけると、この系統は大きく減ります。

種類別:インポートのエラー

インポートの仕組みはPython相対インポートの使い方で扱っています。自分のファイル名を標準ライブラリと同じ名前にしないのも重要です(random.py を作ると標準のrandomが読めなくなります)。

種類別:数値・計算のエラー

種類別:ファイル・権限・文字コード

日本語を扱うと文字コードの問題は必ず通ります。ファイルを開くときに encoding を明示するだけで、大半は防げます。

種類別:実行環境・リソース

再帰の考え方は再帰処理完全マスターガイドで扱っています。

エラーを減らす・早く直すために

1. printよりデバッガを使う

printを並べる方法は最初の一歩としては有効ですが、変数の中身を1か所ずつ確認するには効率が悪くなります。Pythonデバッグ方法入門で、VS Codeとpdbでのステップ実行を扱っています。

2. 例外を握りつぶさない

except: だけで何もせず通過させると、問題が起きていることに気づけなくなります。原因の特定が何倍も難しくなるため、学習段階では特に避けてください。

3. 検索の仕方を工夫する

エラーメッセージをそのまま検索するのが基本ですが、自分のファイル名や変数名は外してください。それらが含まれていると検索結果が出ません。

4. 30分で区切る

独学で最も時間を失うのが、詰まったまま止まっている時間です。学習時間の内訳は言語別の学習時間の目安で扱っていますが、ここが全体の半分以上を占めることもあります。30分で解決しなければ、いったん飛ばして先に進むという上限を決めてください。

よくある質問

エラーが出るのは自分の能力が低いからですか

違います。経験者も同じ頻度でエラーを出します。差があるのは出た後の対処速度だけです。エラーは失敗の証拠ではなく、Pythonからの情報提供だと捉えてください。

英語のメッセージが読めません

全部を訳す必要はありません。エラーの種類(TypeErrorなど)と、not、no、invalid、expected といった単語が拾えれば方向は分かります。よく出るものは10種類程度なので、すぐ慣れます。

エラーは出ないのに結果が違います

こちらのほうが厄介です。エラーが出ないということは、書き方は正しく、処理の組み立てが意図と違うということです。途中の値を確認しながら、どこで期待と食い違うかを探してください。

AIに聞いて解決してもいいですか

構いません。ただし提示された修正を、なぜそれで直るのか理解してから採用してください。理解せずに貼り付けると、同じエラーに何度も遭遇します。

独学だとエラーで止まってしまいます

独学で最も差が出る部分です。詰まったときに聞ける相手がいるかどうかで、学習時間が大きく変わります。判断の軸はプログラミング教室の選び方完全ガイド、独学で止まりやすいパターンはプログラミング独学で挫折する原因と対策にまとめています。

関連記事

まとめ

エラーメッセージは下から読む。取り出すのは「種類」「説明」「発生位置」の3つ。これだけで対処の速度が変わります。

構文エラーは実行前、実行時エラーは実行中に起きます。前者は表示された行より手前を疑ってください。

そして、詰まる時間に上限を決めてください。エラーが出ること自体は問題ではありません。止まっている時間が長いことが、学習を遅らせます。

その他のエラー

ここで扱っていないエラーは個別の記事にまとめています。

プログラミング学習に興味がある方は、まずは無料体験会へ

無料体験会・お申し込みはこちら