더북(TheBook)

8.6 검색하기

다음 함수는 무엇을 할까?

def find(word, letter):

index = 0

while index < len(word):

if word[index] == letter:

return index

index = index + 1

return -1

어떤 점에서 find[] 연산자의 반대다. 인덱스를 취해서 해당 문자를 추출하는 대신 문자 하나를 취해서 해당 문자가 있는 인덱스를 찾는다. 해당 문자를 찾지 못하면 -1을 반환한다.

이 프로그램은 루프 안에서 return 문을 쓰는 첫 번째 예제다. word[index] == letter이면 함수는 루프를 중지하고 즉시 복귀(return)한다.

문자열에 문자가 없으면 프로그램은 루프를 정상적으로 종료하고 -1을 반환한다.

시퀀스를 순회하면서 찾고 있는 것을 발견했을 때 반환하는 컴퓨터 계산 패턴을 검색(search)이라고 한다.

연습삼아 word에서 찾기 시작할 인덱스를 세 번째 인자로 받도록 find 함수를 수정해보자.

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