我最近决定学习基础编程,并且正在使用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
但是,当我运行它时,在
“对于range(2,limit)中的primeTest:”,而python特别突出显示了冒号。我意识到该错误可能是其他地方语法错误的结果,但我找不到它。有人可以指出我的错误在哪里吗?
PS:尽管可以理解,但不需要代码语义帮助。
最佳答案
您拥有“while loopHolder == True:”,其后没有缩进块。您可能应该将其写为“while loopHolder:”,因为不需要== True部分。我也将避免在循环内进行导入。导入语句通常位于文件的顶部,除非您需要将其放在其他位置。在“limit = int(math.sqrt(possiblePrime)”之后,您也没有右括号。
关于python-2.7 - Python 2.7.3中的奇怪语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10902956/