我找不出代码中的IndexError在哪里,所以有人能帮我吗?
下面是代码
def gap(g, m, n):
def is_prime(n):
for i in range(2, n):
if n % i == 0:
return False
return True
result = []
r = []
primes = [p for p in range(m, n) if is_prime(p)]
for i in range(len(primes) - 1):
if primes[i] - primes[i + 1] == g:
r.append(primes[i - 1])
r.append(primes[i])
result.append(r[0])
result.append(r[1])
if result == []:
return None
else:
return result
print (gap(2, 100, 110))这是输出
Traceback (most recent call last):
File "C:\Users\Harry\Documents\randompythonprograms\editable.py", line 20, in <module>
print (gap(2, 100, 110))
File "C:\Users\Harry\Documents\randompythonprograms\editable.py", line 14, in gap
result.append(r[0])
IndexError: list index out of range发布于 2017-03-31 12:35:59
for i in range(len(primes) - 1):
if primes[i] - primes[i + 1] == g:
r.append(primes[i - 1])
r.append(primes[i])
result.append(r[0])
result.append(r[1])您已将r定义为空数组,并且在循环后仍为空数组。您可以通过添加一个简单的print语句来检查它。所以它是一个没有索引0或1的数组,所以它会抛出这个错误。
https://stackoverflow.com/questions/43132422
复制相似问题