だから私は本当に奇妙なエラーに遭遇しています。私はモジュールten.pyを持っています
import math
def go():
list_ = list(range(3, 100000, 2))
max_ = int(math.sqrt(len(list_)))
print(len(list_))
print(max_)
for i in range(1,max_):
print(i)
current = list_[i]
for j in list_[i+1:]:
if j % i == 0:
list_.remove(j)
go()
出力は次のとおりです。
49999
223
1
2
Traceback (most recent call last):
File "D:\Documents\KomodoProjects\Project Euler\ten.py", line 14, in <module>
go()
File "D:\Documents\KomodoProjects\Project Euler\ten.py", line 10, in go
current = list_[i]
IndexError: list index out of range
ご覧のとおり、リストのサイズは49999で、forループは223になります。これにもかかわらず、index = 2で範囲外のインデックス例外が発生します!
forループ内のlist_はどういうわけかgo()内のlist_を参照していませんか?この問題が発生する理由がわかりません。
変更により修正
for i in range(1,max_):
to for i in list_: