Странная синтаксическая ошибка в Python 2.7.3

Недавно я решил изучать базовое программирование и использую класс MIT OpenCourseware для изучения Python. Одним из заданий является создание программы, которая генерирует 1000-е простое число, начиная с 0. Одно из моих первых решений заключается в следующем:

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: Помощь с семантикой кода не нужна, хотя и приветствуется.

2 ответа

Решение

У вас есть "while loopHolder == True:" без блока с отступом после него. Вам, вероятно, следует написать это как while whileHolder:, так как часть == True не требуется. Я бы также не стал делать импорт внутри цикла. Операторы импорта обычно находятся вверху файла, если вам не нужно, чтобы они были где-то еще. У вас также нет закрывающей скобки после "limit = int(math.sqrt(возможный Prime)").

Пробел действительно очень важен для питона. Вы должны уделять больше внимания этому, когда вы пишете код, а затем копируете его в stackru. Прямо сейчас ваш код не будет работать так, как вы его написали, если бы я скопировал и вставил его.

Для вашей проблемы посмотрите на две строки выше и посмотрите, нет ли у вас закрывающей скобки.

Другие вопросы по тегам