2011-08-19 3 views
-3

이 코드를 파이썬에서 실행할 때 구문 오류가 발생하고 "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" 
+0

이 줄은 어떻게 들여 쓰기됩니까? – utdemir

+0

구문 오류를 게시하기 전에 코드에 더 많은 시간을 할애해야합니다. – Reno

답변

2

이전에 줄 바꿈이 없어졌습니다. 이 변경이로

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

을 :

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

아, 알겠습니다. 아주 쉽게. 고맙습니다. 그리고 모두 아래에 있습니다. – rbharvs

+1

"고맙다"의견을 게시하지 마십시오. 15 분을 기다렸다가 최상의 답을 수락하십시오! – agf

0

당신은 앞 줄에 괄호를 닫습니다 잊어 버렸습니다. 그것은이어야합니다 :

0

위의 if 문은 콜론으로 끝나야하며 강조 표시된 줄은 들여 쓰기되어야합니다.

+0

틀린, if 문을 다시 본다. – agf