首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >谁能告诉我IndexError到底在哪里?(Python)

谁能告诉我IndexError到底在哪里?(Python)
EN

Stack Overflow用户
提问于 2017-03-31 12:22:52
回答 2查看 24关注 0票数 0

我找不出代码中的IndexError在哪里,所以有人能帮我吗?

下面是代码

代码语言:javascript
运行
复制
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))

这是输出

代码语言:javascript
运行
复制
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
EN

Stack Overflow用户

发布于 2017-03-31 12:35:59

代码语言:javascript
运行
复制
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的数组,所以它会抛出这个错误。

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43132422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档