<개인공부>/[Python]

[python] 파이썬 find 함수에 대해서

사용자 BlockDMask 2021. 10. 7. 21:00
반응형

안녕하세요. BlockDMask 입니다.
오늘은 파이썬의 find 함수에 대해서 알아보겠습니다.

<목차>
1. 파이썬 find 함수
2. 파이썬 find 함수 예제

 

 

1. 파이썬 문자열 find 함수에 대해서


string.find(찾을 문자)
string.find(찾을 문자, 시작 Index)
string.find(찾을 문자, 시작 Index, 끝 Index)

find 함수 첫번째 인자
- 찾을 문자열 혹은 찾을 문자

find 함수 두번째 인자 (생략가능)
- 문자를 찾을때 어디서 부터 찾을지 시작 index. 생략시 0

find 함수 세번째인자 (생략가능)
- 문자를 찾을때 어디 까지 찾을지 끝 index, 생략시 문자열 맨 마지막 index

find 메서드는 "찾을 문자" 혹은 "찾을 문자열"이 존재하는지 확인하고, 
찾는 문자가 존재 한다면 해당 위치의 index를 반환해주고
찾는 문자가 존재 하지 않는다면 -1 을 반환합니다.

만약에 찾는 문자나 문자열이 여러개 있다면 맨 처음 찾은 문자의 index를 반환하게 됩니다.

 

 

2. 문자열 find 함수 예제


str= "BlockDMask Blog.";
print(f"str : {str}\n")

# find 예제1
print("1. str.find('찾을 문자')")
result1 = str.find('a')   # 문자가 있는 경우
result2 = str.find('Z')   # 문자가 없는 경우

print(f"str.find('a') : {result1}")
print(f"str.find('Z') : {result2}")

result3 = str.find('ask') # 문자열이 있는 경우
result4 = str.find('kkk') # 문자열이 없는 경우

print(f"str.find('ask') : {result3}")
print(f"str.find('kkk') : {result4}")
print()


# find 예제2
print("2. str.find('찾을 문자', 시작index)")
result5 = str.find('o')
result6 = str.find('o', 5)

print(f"str.find('o') : {result5}")

print(f"str[5] : {str[5]}")
print(f"str.find('o', 5) : {result6}")
print()


# find 예제3
print("3. str.find('찾을 문자', 시작 index, 끝 index)")
result7 = str.find('o')
result8 = str.find('o', 5, 11)  # "DMask B"

print(f"str.find('o') : {result7}")

print(f"str[5]~str[11] : {str[5]} ~ {str[11]}")
print(f"str.find('o', 5, 11) : {result8}")

1번째 테스트 - str.find('찾을 문자')
str.find('a')는 "BlockDMask Blog" 라는 문자열에서 a라는 것의 위치가 index : 7 이기 때문에 7이 반환된것을 볼 수 있습니다.
str.find('Z')는 "BlockDMask Blog"에서 존재하지 않는 문자이기 때문에 -1 이 반환 되었습니다.

str.find('ask')는 "BlockDMask Blog" 문자열에 존재하므로 "ask"의 맨 첫번째 index인 a가 있는 위치의 index 인 7을 반환 한 것을 볼 수 있습니다.
str.find('kkk') 해당 문자열이 없으므로 -1을 반환하였습니다.

2번째 테스트 - str.find('찾을 문자', 시작 index)
str.find('o')는 "BlockDMask Blog" 문자열에서 'o'는 두개가 존재하는데 첫번째 o의 위치인 2를 반환하는 것을 볼 수 있습니다.
str.find('o', 5) 를 통해서 서치할 시작 index의 위치를 수정해주면 "BlockDMask Blog" 해당 문자열의 index 5의 위치인 "D" 부터 서치를 하기 때문에 전체 문자열 기준으로 두번째 'o'의 위치인 13이 나오는 것을 볼 수 있습니다.

3번째 테스트 - str.find('찾을 문자', 시작 index, 끝 index)
str.find('o', 5, 11) 을 보면 "BlockDMask Blog"문자열에서 str[5]~str[11]에 해당하는 문자들은 "DMask B" 이기 때문에 해당 문자열 내부에는 find 할 'o'가 존재하지 않습니다. 
그렇기 때문에 해당 함수의 결과는 -1이 나오게 됩니다.

 

파이썬 문자열의 더 다양한 함수가 궁금하다면 [바로가기] 포스팅에 있습니다.

이렇게 오늘은 파이썬 문자열의 find 함수에 대해서 알아보았습니다.
감사합니다.

반응형