2012-09-13 3 views
-1

이 코드는 python 셸 버전 2.7.3에서 사용되었습니다.이 오류가 발생합니다. 코드는 괜찮은 것 같고 어디서 잘못 될지 이해하지 못합니다. 여기 Python Shell Erro

Traceback (most recent call last): 
     File "C:\Python27\problem8euler.py", line 25, in <module> 
     num.append(int(char)) 
    ValueError: invalid literal for int() with base 10: '' 

내 코드입니다 :

오류입니다 코드는 프로젝트 오일러 문제에 대한 내 솔루션은

string = # that really long number, edited out for page-width-sanity 

num = [] 

for char in string: 
    num.append(int(char)) 


answers = [] 


i = 0 

while i <= len(num) - 5: 
    k = i + 1 
    l = i + 2 
    m = i + 3 
    n = i + 4 
    prod = (num[i] * num[k] * num[l] * num[m] * num[n]) 
    answers.append(prod) 
    i += 1 

print max(answers) 

8.

댓글은 위치에 이해할 수있을 것이다 I 잘못 가고있다.

+2

숫자를 편집하지 마십시오. 이 오류 메시지는 매우 중요합니다 (사실 4 번째 줄 이후의 모든 항목은 안전하게 삭제할 수 있음). 더 작은 예제를 만들고 싶다면 : 감사합니다! [그러나 그것을 완전하고, 재현 가능하고, 정확하게 만들어야합니다.] (http://sscce.org/). – phihag

+0

마지막 줄이 25입니까 ('print max (answers)')? – Yamaneko

+1

긴 숫자에 오타가있는 것 같습니다. 아마도 따옴표 나 공백을 삭제하는 것을 잊었을 것입니까? – BrenBarn

답변

1

string에는 공백 문자가 들어 있습니다. 당신은 string에 모든 문자에 int를 호출 int(' ') 실패 :

>>> int(' ') 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ValueError: invalid literal for int() with base 10: '' 

단순히 문제를 해결하기 위해 공백 문자를 제거하거나 다음과 같이 string에 공백을 건너 뜁니다

string = '1 2' 
num = [int(c) for c in string if not c.isspace()] 

합니다 ([.. for ..] 구조 list comprehension라고합니다.)

+0

추적에 대한 인용문은 나를 위해 나를 던졌습니다. 나는'' '''을 인쇄 할 문자열이 무엇인지 알아 내려고 노력했습니다. (실제로 나는'''나는 생각한다.) – mgilson