첫 번째 if 문에서는 두 단어의 길이가 같은지 검사한다. 두 단어의 길이가 다르다면 즉시 False를 반환한다. 길이가 같다면 함수의 나머지 부분에서는 두 단어가 같은 길이라고 가정할 수 있다. 이를 114쪽의 “6.8 타입 검사”에서 설명한 수호자(gurdian) 패턴이라고 한다.
i와 j는 인덱스다. i는 word1을 순방향(forward)으로 순회하고, j는 word2를 역방향(backward)으로 순회한다. 일치하지 않는 두 문자열 발견하면 즉시 False를 반환할 수 있다. 전체 루프를 돌고 모든 문자가 일치한다면 True를 반환한다.
이 함수를 “pots”와 “stop” 단어로 테스트하면 반환값 True를 예상하지만, 실제로는 IndexError가 발생한다.
>>> is_reverse('pots', 'stop')
...
File "reverse.py", line 15, in is_reverse
if word1[i] != word2[j]:
IndexError: string index out of range