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 中的奇怪语法错误的主要内容,如果未能解决你的问题,请参考以下文章

python3中的奇怪语法

MySQL 语法错误?奇怪的错误

Python中的gsutil引发语法错误

Python Anywhere中的Python语法错误

无法在点击事件时设置离子本地通知(奇怪的语法错误)

为啥这不是python中的语法错误?