프로그래밍/Python

[python] str.find()와 str.index() 함수의 차이

채윤아빠 2021. 5. 13. 09:23
728x90
반응형

파이썬 문자열에서 특정 문자열을 검색하기 위하여 find()와 index() 함수를 제공하고 있습니다. 두 함수 모두 검색할 문자열을 찾았을 경우에는 해당 순번(index)을 반환하는 것은 동일하나 검색 대상 문자열을 찾지 못한 경우에는 다르게 동작합니다.

find() 함수가 검색 대상 문자열을 찾지 못한 경우에 -1을 반환하지만, index() 함수는 "ValueError: substring not found" 오류가 발생합니다.

다음은 두 함수간의 차이를 보여주는 예시입니다.

source = 'ABCDEFG'

print(f"{source.find('B')=}")
print(f"{source.index('B')=}")

print('----------')

print(f"{source.find('b')=}")
print(f"{source.index('b')=}")

다음은 위 소스를 실행한 결과입니다.

source.find('B')=1
source.index('B')=1
----------
source.find('b')=-1
Traceback (most recent call last):
  File "D:\MyProj\python\python-test\string\str_find_vs_index.py", line 13, in 
    print(f"{source.index('b')=}")
ValueError: substring not found