1から始めるPythonデータ分析 - やりたいこと逆引きリスト ▶︎▶︎

【Python】エラーメッセージの意味を解説

エラーメッセージを解説

Pythonでコードのミスによるエラーの原因を解説します

残念ながら全て英語でエラーメッセージが表示されるため、「なぜ実行できないか」を理解するのが大変です

また初学者にとっては、正しく書いているつもりでもPythonが実行できないのがストレスになります

少しでも負担を軽減するため、エラーメッセージの意味を理解しましょう

Pythonのエラーに困っている人のイメージ

エラーメッセージ一覧

Pythonでは実行画面に「エラー内容」が出力されるため、エラー修正が容易な言語です

一方で慣れないうちはなぜエラーが出ているのかが分かりにくくなっています

今回はエラーメッセージの一覧と、そのエラーが起きないようにする方法を合わせてご紹介します

エラーメッセージエラー内容
NameErrorタイピングミス
SyntaxError文法ミス
TypeErrorデータ型が違う
ValueErrorデータ型は合っているが、値が違う
AttributeErrorオブジェクトに存在しない属性を指定
ZeroDivisionErrorゼロで割り算している
IndexError存在しないインデックスを指定している
KeyError辞書に対して存在しないキーを指定している
IndentaionErrorインデントがずれている
ModuleNotFoundErrorモジュールをインポートできない
ImportErrorモジュールに含まれないオブジェクト
FileNotFoundError指定したファイルが見つからない

NameError

prin('テキスト') #printが正解
NameError

NameErrorタイピングミスです

文字が抜けていたり、無駄な文字が付いていたりすると発生します

大文字、小文字の書き間違いなどでもこのエラーは発生します

確認すること
  • 正しく関数・メソッドが書かれているか
  • 事前に記述した変数名が正しいか
  • タイプミスしていないか

SyntaxError

print('クォーテーションが足りない)
SyntaxError

SyntaxError文法ミスです

クォーテーション(‘ ‘)(” “)やカッコ( )、コロン:が足りないことによっておこるエラーです

長くコードを書く場合は特に忘れやすい項目なので、注意してください

確認すること
  • クォーテーションの最初と最後がそろっているか
  • カッコの最初と最後がそろっているか
  • 繰り返し処理forや条件分岐ifなどで、コロンが適切に書かれているか

TypeError

len(3)
TypeError

TypeErrorデータ型のミスです

上記の例では引数に指定すべきではない「数値型」を指定しているため、データ型のエラーが発生しています

確認すること
  • 関数に渡すデータ型が正しいか

ValueError

int('one')
ValueError

ValueErrorデータ型は正しいが、適切な値ではないエラーです

上記例では「文字列型」を「数値型」に変換するintに対して、文字列である「one」を指定してエラーが出ています

※Pythonは「one=1」を理解できない

確認すること
  • 関数に渡す値が正しいか

AttributeError

text = 'テキスト'
text.a
AttributeError

AttributeErrorオブジェクトに存在しない属性を指定した場合のエラーです

上記では存在しない「a」属性を指定しているためエラーが発生しています

使い方を見直すか、単純なタイプミスなので確認してみましょう

確認すること
  • オブジェクト名が正しいか
  • オブジェクトの使い方が正しいか

ZeroDivisionError

3/0
ZeroDivisionError

ZeroDivisionErrorゼロで割り算を実施しようとしているエラーです

数学的に「ゼロ」では割ることができないため、エラーが発生します

確認すること
  • 対象のデータに「ゼロ」が含まれていないか

IndexError

temp = [0,1,2]
temp[5]
IndexError

IndexErrorリストなどで存在しないインデックスを指定すると発生するエラーです

範囲を超えたインデックス値を指定すると発生します

Pythonは「0」始まりでデータを数えるため、インデックスは(データ数 – 1)となり注意が必要です

確認すること
  • 範囲内のインデックスを指定しているか
  • 「0」から始まるのを注意する

KeyError

temp = {'key1':'あ','key2':'い','key3':'う'}
temp['key5']
KeyError

KeyError辞書の値に対して、存在しないキーを指定してしまった場合のエラーです

確認すること
  • 対象のKeyが存在しているか

ちなみにkeysを利用すると、辞書のキーのみを取得することができます

list(temp.keys())
list(temp.keys())

IndentaionError

for i in range(5):
print(i)
IndentaionError

IndentaionErrorインデント(階層)のエラーです

同じ階層であるべきインデントがずれている場合に発生します

特に繰り返し処理forや条件分岐のif、関数defなどの記述で注意してください

確認すること
  • 正しいインデント(階層)になっているか

ModuleNotFoundError

import pands as pd #pandasが正
ModuleNotFoundError

ModuleNotFoundErrorモジュールをインポートできないときに発生するエラーです

タイプミスでモジュール名の記載が間違っている場合や、そもそもインストールされていないモジュールを指定している場合が考えられます

確認すること
  • モジュール名が正しいか
  • 事前にモジュールをインストールしているか(pipコマンドなど)

ImportError

from sklearn.svm import svc
ImportError

ImportErrorモジュールに含まれないオブジェクトをインポートする際のエラーです

そもそもモジュールに含まれていないオブジェクトや、大文字・小文字のタイプミスもエラーの対象になります

※上記は「svc」ではなく「SVC」が正解

確認すること
  • 対象モジュールにオブジェクトが含まれているか
  • モジュール名が正しいか
  • オブジェクト名が正しいか

FileNotFoundError

pd.read_csv('test.csv')
FileNotFoundError

FileNotFoundErrorはファイルを読み込む際に指定したファイルが見つからないエラーです

Google CorabolatoryではGoogle Driveとの連携がされていないと同様のエラーが発生します

確認すること
  • 指定したファイルが存在しているか
  • ファイル名が正しいか
  • パス名が正しいか
  • Google CorabolatoryがGoogle Driveと連携しているか
【Python】Google ColaboratoryとGoogle Driveを連携する方法

まとめ

今回はPythonでコードのミスによるエラーの原因を解説してきました

エラーとの戦い」は全てのプログラミング学習者が通る道なので、ぜひエラーと向き合ってください

お気に入り登録お願いします

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です