/ / Pythonエラー:リストのインデックスが範囲外です - python、list

Pythonエラー:リストのインデックスが範囲外です - python、list

エラーリストのインデックスが範囲外になっています。私は何が間違っているのか分かりません。

私のコード:

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は5

array空の。ない array[0] リストが空の場合。

あなたは、おそらくこのedgecaseをテストすることができます:

def small(array):
if not array:
return None

回答№2については2

最初の呼び出しを想定します。 .readint() 返品 ""、あなたの配列はまだです [] 後に while ループ、したがって array[0] 〜を引き起こす IndexError.


回答№3の場合は1

渡す配列が空である可能性があります。たとえば、入力ファイルに空の行や空のデータがあるとします。