더북(TheBook)

첫 번째 if 문에서는 두 단어의 길이가 같은지 검사한다. 두 단어의 길이가 다르다면 즉시 False를 반환한다. 길이가 같다면 함수의 나머지 부분에서는 두 단어가 같은 길이라고 가정할 수 있다. 이를 114쪽의 6.8 타입 검사에서 설명한 수호자(gurdian) 패턴이라고 한다.

ij는 인덱스다. iword1을 순방향(forward)으로 순회하고, jword2를 역방향(backward)으로 순회한다. 일치하지 않는 두 문자열 발견하면 즉시 False를 반환할 수 있다. 전체 루프를 돌고 모든 문자가 일치한다면 True를 반환한다.

이 함수를 potsstop 단어로 테스트하면 반환값 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

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