LoginSignup
3
2

More than 3 years have passed since last update.

Pythonのエラーメッセージは具体的でわかりやすい「が」(要素[0]でIndexError: list index out of range)

Posted at

目的

何かと比較できるほどの経験が乏しいですが、
Pythonのエラーメッセージは具体的でわかりやすい
と感じています。
よって、エラーは、ぱっと見るだけでなく、記載内容をまじめに読むことが、
エラー解決の近道である気がしています。

ただ、一瞬、理解できないこともあるので、
理解できるはずという前提で落ち着いて考えましょう
という、そんな気持ちを示すための記事です。

要素[0]でIndexError: list index out of range

補足の要素[0]でIndexError: list index out of rangeの意味は、
レンジ外と言われてみ、要素[0]がなんで、レンジ外なの?
という意味です。

エラーメッセージの例

ここで示すコードは、エラーメッセージを出すためのコードで、
全く同じような間違いをする可能性があるコードではありません。
繰り返します。エラーメッセージを出さすためのコードです。
(ただし、もう少し、ややこしいコードで、同じエラーが出ているのをみたことはあります。)

エラー1

IndexError: list index out of rangeが出るケースです。コードは、以下です。
下記のコードは、意味がありませんが、
(ただし、下記で、bが、関数の戻り値でリストを得ている場合などで、出会うことはあると思います。)

index_err1.py
a = [1, 2, 3]
b = []

print("a[0]",a[0])
print("b[0]",b[0])

エラー表示は、以下です。

Traceback (most recent call last):
  File "list_err1.py", line 5, in <module>
    print("b[0]",b[0])
IndexError: list index out of range

リストbは、[0]すらないというだけのことですが、
繰り返しますが、こんなコードは書かないですが、
bが、関数の戻り値でリストを得ている場合など、多いにある。と思いました。

ポイント

IndexError: list index out of rangeには、Indexの指定が悪い場合以外に、
元のオブジェクトがちゃんとできていないケースがある。
関数の戻り値でリストを得ている場合など、多いにある。

まとめ

エラーメッセージを構成するつくり上、当然の結果だとも思いますが、わかりやすいと感じたので。。。

関連(本人)

直接はあまり関係ないもの

pythonをストレスなく使う!(generatorに詳しくなる。since1975らしい。)

pythonをストレスなく使う!(Pythonでは、すべてがオブジェクトとして実装されている)
pythonをストレスなく使う!(Pylintに寄り添う)
pythonをストレスなく使う!(ExpressionとStatement)
英語と日本語、両方使ってPythonを丁寧に学ぶ。

今後

コメントなどあれば、お願いします。:candy:
勉強します、、、、

3
2
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
2