더북(TheBook)

이런 종류의 오류를 디버깅할 때는 먼저 오류가 표시된 줄 바로 앞에 인덱스 값을 출력하는 것이 좋다.

while j > 0:

print(i, j) # 여기서 출력

if word1[i] != word2[j]:

return False

i = i+1

j = j-1

이제 프로그램을 다시 실행하면 정보를 좀 더 얻을 수 있다.

>>> is_reverse('pots', 'stop')

0 4

...

IndexError: string index out of range

루프를 처음 실행할 때 j의 값은 4이고, 이는 문자열 'pots'의 범위를 벗어난 것이다. 'pots'에서 마지막 문자의 인덱스는 3이므로 j의 초깃값은 len(word2)-1이 되어야 한다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.