Синтаксическая ошибка Python - PullRequest
0 голосов
/ 19 августа 2011

Когда я запускаю этот код на python, он вызывает синтаксическую ошибку и выделяет «l» в строке, которую я указал. Почему он это делает?

from Euler import primeSieve,sumDig

def powerSieve(n):
    powers = []
    primes = primeSieve(100)
    for i in primes:
        j = 2
        while i ** j <= n:
            for k in primes:
                if i == k and i ** j >= 10: powers.append(i ** j)
                else:
                    l = 1
                    while l * (i ** j) <= n:
                        if l * (i ** j) >= 10: powers.append(l * (i ** j)
##THIS LINE             l *= k
            j += 1
    return sorted(set(powers))

from time import clock
start = clock()

print "Answer to PE119 = ",powerSieve(100)

elapsed = clock() - start
print elapsed * 1000,"ms"

Ответы [ 3 ]

2 голосов
/ 19 августа 2011

Вам не хватает закрывающей скобки на линии раньше.Измените это:

if l * (i ** j) >= 10: powers.append(l * (i ** j)

На это:

if l * (i ** j) >= 10: powers.append(l * (i ** j))
0 голосов
/ 19 августа 2011

У вас есть оператор if над этой строкой, поэтому указанная строка должна заканчиваться двоеточием, а выделенная строка должна иметь отступ.

0 голосов
/ 19 августа 2011

Вы забыли закрыть скобки в предыдущей строке.Должно быть:

powers.append(l * (i ** j))
...