결론부터 말하자면, 파이썬에는 자바나 C#의 contains()처럼 문자열 포함 여부만을 확인하는 전용 메서드는 없습니다. 대신 파이썬에서는 in 연산자와 find() 메서드라는 두 가지 방법으로 동일한 기능을 구현할 수 있습니다.
1. in 연산자로 부분 문자열 확인하기
파이썬은 한 문자열이 다른 문자열에 포함되어 있는지 검사할 수 있는 in 키워드를 기본으로 제공합니다. 가장 간결하고 파이썬다운(Pythonic) 방식이며, 결과는 불리언 값으로 반환됩니다.
>>> 'ello' in 'hello world' True >>> 'no' in 'hello' False
위 예제에서 볼 수 있듯이, 부분 문자열이 존재하면 True, 존재하지 않으면 False를 반환합니다.
2. find() 메서드로 위치(인덱스)까지 확인하기
단순히 포함 여부뿐 아니라 부분 문자열이 처음 나타나는 위치(인덱스)까지 알고 싶다면 find(substr) 메서드를 사용하세요. 만약 이 메서드가 -1을 반환한다면, 해당 부분 문자열이 문자열 안에 존재하지 않는다는 의미입니다.
>>> 'hello world'.find('ello')
1
>>> 'hello'.find('no')
-1첫 번째 예제에서 'ello'는 인덱스 1 위치에서 시작하므로 1이 반환되고, 두 번째 예제에서 'no'는 존재하지 않으므로 -1이 반환됩니다.
참고: index() 메서드
find()와 유사하게 index() 메서드도 부분 문자열의 위치를 반환하지만, 차이점은 부분 문자열이 존재하지 않을 때 -1을 반환하는 대신 ValueError 예외를 발생시킨다는 점입니다. 따라서 예외 처리(try-except)와 함께 사용하는 것이 좋습니다.
정리
포함 여부만 확인하려면 in 연산자를, 위치 정보까지 필요하면 find() 메서드를 사용하는 것이 파이썬에서 가장 권장되는 방식입니다.