Python 2.7.3 中的奇怪语法错误
Posted
技术标签:
【中文标题】Python 2.7.3 中的奇怪语法错误【英文标题】:Strange syntax error in Python 2.7.3 【发布时间】:2012-06-09 19:18:03 【问题描述】:我最近决定学习基本编程,并且正在使用 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
但是,当我运行它时,我在 "for primeTest in range(2, limit):" 并且 python 专门突出显示冒号。我意识到该错误可能是其他地方的语法错误导致的,但我找不到它。有人能指出我的错误在哪里吗?
PS:不需要代码语义方面的帮助,但非常感谢。
【问题讨论】:
【参考方案1】:“while loopHolder == True:”后面没有缩进块。您可能应该将其写为“while loopHolder:”,因为不需要 == True 部分。我也会避免在循环中进行导入。导入语句通常位于文件的顶部,除非您需要将它放在其他位置。在“limit = int(math.sqrt(possiblePrime)”之后也没有右括号。
【讨论】:
【参考方案2】:空白对 python 来说非常非常重要。在编写代码然后将其复制到 *** 时,您需要更加注意这一点。现在,如果我要复制并粘贴它,您的代码将无法像您编写的那样工作。
对于您的问题,请查看上面的两行,看看您是否缺少右括号。
【讨论】:
indentation is important in Python, not whitespace 空白不仅仅是缩进。它让人们看到或感到困惑。它允许事物在视觉上被隔离。虽然 python 主要强制执行缩进,但空格的重要性足以成为PEP-8 的一部分。我认为这篇博文在教 Python 新手或编程了解空白的优点方面更不幸。 不能再同意了,即使是在other programming languages, like Prolog的上下文中。以上是关于Python 2.7.3 中的奇怪语法错误的主要内容,如果未能解决你的问题,请参考以下文章