出力の53行目を印刷するようにプログラムに指示しています。このエラーは、行数が少ないために印刷できないことを示していますか?
636626 次
8 に答える
78
53項目のリストがある場合、最後の1つはthelist[52]
、索引付けが0から始まるためです。
実際のPythonから:Pythonトレースバックを理解する-IndexError
:
IndexError
は、aやa
IndexError
などのシーケンスからインデックスを取得しようとしたときに発生し、そのインデックスがシーケンスに見つかりません。Pythonのドキュメントでは、この例外がいつ発生するかを定義しています。list
tuple
シーケンスの添え字が範囲外の場合に発生します。(出典)
IndexError
これが:を発生させる例です。
test = list(range(53))
test[53]
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-6-7879607f7f36> in <module>
1 test = list(range(53))
----> 2 test[53]
IndexError: list index out of range
のエラーメッセージ行は、
IndexError
優れた情報を提供しません。シーケンス参照があり、この場合out of range
はシーケンスのタイプが何であるかがわかります。list
その情報を残りのトレースバックと組み合わせると、通常、問題の修正方法をすばやく特定するのに十分です。
于 2009-07-08T15:07:15.337 に答える
35
はい、
存在しないリストの要素にアクセスしようとしています。
MyList = ["item1", "item2"]
print MyList[0] # Will work
print MyList[1] # Will Work
print MyList[2] # Will crash.
オフバイワンエラーが発生しましたか?
于 2009-07-08T15:08:32.620 に答える
5
はい。シーケンスには 54 番目の項目がありません。
于 2009-07-08T15:07:00.940 に答える
3
それは正しい。「リストインデックスが範囲外です」n-th
は、リストの長さが。よりも小さいときに、リストの要素を参照していることを意味している可能性がありn
ます。
于 2009-07-08T15:08:10.423 に答える