エラーリストのインデックスが範囲外になっています。私は何が間違っているのか分かりません。
私のコード:
from scanner import *
def small(array):
smallest=array[0]
for i in range(len(array)):
if (array[i]<smallest):
smallest=array[i]
return smallest
def main():
s=Scanner("data.txt")
array=[]
i=s.readint()
while i!="":
array.append(i)
i=s.readint()
s.close()
print("The smallest is", small(array))
main()
私が得るトレースバック:
Traceback (most recent call last):
File "file.py", line 21, in <module>
main()
File "file.py", line 20, in main
print("The smallest is", small(array))
File "file.py", line 5, in small
smallest=array[0]
IndexError: list index out of range
回答:
回答№1は5array
は 空の。ない array[0]
リストが空の場合。
あなたは、おそらくこのedgecaseをテストすることができます:
def small(array):
if not array:
return None
回答№2については2
最初の呼び出しを想定します。 .readint()
返品 ""
、あなたの配列はまだです []
後に while
ループ、したがって array[0]
〜を引き起こす IndexError
.
回答№3の場合は1
渡す配列が空である可能性があります。たとえば、入力ファイルに空の行や空のデータがあるとします。