1

我正在尝试测试 2 到 100 之间的素数,但我的代码出现错误,我不知道为什么。(我是python的新手)

def function():
  mylist = [1,2]
  count = 0
  for i in range(2,100):
    for j in range(2,i):
      if i % j == 0:
        count += 1
      if count > 0:
        count += 0
        else:
          mylist.append(i)
      count = 0
  return mylist
4

3 回答 3

5

它看起来像一个缩进问题,试试这个:

if count > 0:
  count += 0
else:
  mylist.append(i)

在 Python 中,正确缩进代码非常非常重要。您会看到,else关键字必须与关键字出现在同一级别if。使用好的 IDE 或文本编辑器来帮助您捕获此类错误!

于 2013-06-11T22:26:18.717 回答
2

Python 用空格表示代码块,就像某些语言使用大括号一样。您最里面的代码块在带有大括号的语言中看起来像这样,这可能更容易看出语法错误在哪里:

if (count > 0) {
  count += 0;
  else {
    mylist.append(0);
  }
}
于 2013-06-11T22:36:26.750 回答
1

Else 应该与 if 语句在同一行缩进。否则 else 被认为在 if 条件内。

于 2013-06-11T22:27:10.563 回答