이 예시는 'doo'가 나타나는 모든 위치를 출력한다.
0 7 14
이 예시는 ‘시작’ 인수를 활용하고 있다. find 메서드가 값을 반환하면 검색 시작 위치 n을 하나씩 증가시킨다. 이는 다음에 호출될 find 메서드가 새로운 ‘부분문자열’ 인스턴스를 찾는 것을 보장한다.
find 메서드는 검색에 실패하면 -1을 반환한다.
index와 rfind 메서드는 find 메서드와 거의 똑같지만, 몇 가지 다른 점이 있다. index 메서드는 ‘부분문자열’을 찾지 못하면 -1을 반환하지 않는다. 대신 ValueError 예외를 발생시킨다.
rfind 메서드는 ‘부분문자열’을 뒤에서부터 검색하는데, 기본적으로 문자열의 끝에서 왼쪽으로 검색을 진행한다. 하지만 그렇다고 해서 부분문자열을 역순으로 변경한다는 것은 아니다. 대신 ‘부분문자열’이 등장하는 마지막 단어의 첫 글자 인덱스 위치를 반환한다.
frank_str = 'doo be doo be doo...'
print(frank_str.rfind('doo')) # 14 출력
이 예시는 'doo'가 나타나는 맨 오른쪽 문자의 첫 글자가 0으로 시작하는 인덱스의 14번째 인덱스이기 때문에 14를 출력한다.