谁能告诉我索引器在哪?(Python)
我很难找出代码中的索引器在哪里,有人能帮我吗 这是密码谁能告诉我索引器在哪?(Python),python,python-3.x,Python,Python 3.x,我很难找出代码中的索引器在哪里,有人能帮我吗 这是密码 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
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
回溯(最近一次呼叫最后一次):
文件“C:\Users\Harry\Documents\randompythonprograms\editable.py”,第20行,在
打印(间隙(21001110))
文件“C:\Users\Harry\Documents\randompythonprograms\editable.py”,第14行,在gap中
result.append(r[0])
索引器:列表索引超出范围
这是出现错误的原因
r.append(primes[i - 1])
它将i作为列表的第一个值id,您通过(i-1)
您已经将r定义为空数组,并且在循环之后仍然是空数组。您可以通过添加一个简单的打印语句来检查它。所以它是一个没有索引0或1的数组,所以它抛出了那个错误。那么,它在跟踪中就这么说了,对吗?第14行抛出了这个错误。您使用参数
2100110
调用了gap
,当您调用result时,它在第14行抛出了索引错误。append(r[0])
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])