Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
谁能告诉我索引器在哪?(Python)_Python_Python 3.x - Fatal编程技术网

谁能告诉我索引器在哪?(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])