Python 2.7.3中的奇怪语法错误

时间:2012-06-05 18:40:25

标签: python-2.7 syntax-error primes

我最近决定学习基础编程,并且正在使用MIT OpenCourseware类来学习Python。其中一个任务是创建一个程序,从0开始生成第1000个素数。我的第一个解决方案之一如下:

oddList = []
for odd in range(3, 10000):
if odd % 2 != 0:
    oddList.append(odd)
else:
    continue


primeCount = 3
loopHolder = True
while loopHolder == True:

for possiblePrime in oddList:
    if primeCount == 1000:
        print possiblePrime
        loopHolder = False
    from math import *
    limit = int(math.sqrt(possiblePrime)

    for primeTest in range(2, limit):
            testCount = 0
            if possiblePrime % primeTest == 0:
                testCount = testCount + 1
                primeCount = primeCount                
            else:
                continue
            if testCount > 0:
                primeCount = primeCount
                break
            else:
                primeCount = primeCount + 1
                break

然而,当我运行它时,我收到语法错误 “对于范围内的primeTest(2,限制):”和python特别突出了冒号。我意识到错误可能是其他地方语法错误的结果,但我找不到它。有人可以指出我的错误在哪里吗?

PS:虽然赞赏,但不需要帮助代码的语义。

2 个答案:

答案 0 :(得分:1)

你有“while loopHolder == True:”,后面没有缩进块。您应该将其写为“while loopHolder:”,因为== True部分不是必需的。我也会避免在循环中进行导入。导入语句通常位于文件的顶部,除非您需要它在其他位置。在“limit = int(math.sqrt(possiblePrime)”之后你也没有一个右括号。

答案 1 :(得分:1)

对于python来说,白色空间真的非常重要。在编写代码然后将其复制到stackoverflow时,需要更加注意这一点。现在,如果我要复制并粘贴它,你的代码将无法正常工作。

对于您的问题,请查看上面的两行,看看您是否缺少右括号。