본문 바로가기
Python

[python] 파이썬에서 문자열 위치 찾기(find vs index)

by rubyda 2021. 8. 23.
728x90

파이썬에서 원하는 문자열의 위치를 찾고 싶을때 사용하는 함수는 두가지가 있다. 바로 find, index이다. 비슷한 기능을 하는거 같지만 약간의 차이가 있기에 정리를 해보자.

 

find vs index : 공통점

ex = "hello i love python"
print(ex.find('python'))

>>13
ex = "hello i love python"
print(ex.index('python'))

>>13

다음은 'python'이라는 문자열의 위치를 반환해주는 코드이다. 해당 문자열이 존재하기 때문에 find와 index에서는 동일하게 python 문자열의 위치를 반환하여 준다. 이 부분은 동일하게 적용이 된다. 하지만 원하는 문자열이 존재하지 않을 경우에는 다르게 반환이 된다. 확인해보도록 하자!

 

find vs index : 차이점

ex = "hello i love python"
print(ex.find('java'))

>> -1

 

먼저 find를 보자. 다음의 경우는 java라는 문자열이 존재하지 않는 상황이다. 이러한 경우 find 함수는 -1이라는 값을 반환해 준다. 즉, 에러 메세지를 따로 출력해주지 않고 -1을 통해 해당 문자열이 없음을 표현해 준다.

 

ex = "hello i love python"
print(ex.index('java'))

 

다음은 index이다. index의 경우 똑같이 원하는 문자열이 존재하지 않는 상황에서 다르게 반환을 해준다. indexa 에서는 다음과 같이 에러 메세지(ValueError)를 출력을 한다. 상황에 따라 원하는 함수를 적절하게 써야 할 듯!!

 

ex = "hello i love python"

try:
 print(ex.index('네이버'))
except ValueError:
 print(-1)
 
 >> -1

 

다음과 같이 예외처리를 활용해도 좋다!!