본문 바로가기
초보자를 위한 Python/4. Python 문자열

4.6 파이썬 문자열 find() 메소드의 정리

by 엔터티 2022. 6. 24.
반응형

파이썬의 문자열 메소드 find()란 무엇인가요?

Python String find() 는 주어진 문자열에서 하위 문자열이 처음 나타나는 인덱스를 찾기 위해 Python 라이브러리에서 사용할 수 있는 함수(메서드)입니다. 문자열 find() 함수는 지정된 하위 문자열이 주어진 문자열에 없으면 예외를 발생시키는 대신 -1을 반환합니다.

목차

    파이썬 String find()의 구문

    파이썬의 find() 메서드의 기본 구문은 다음과 같습니다.

    ## 사용법
    
    string.find(substring,start,end)

    find() 메소드의 매게변수

    다음은 Python에서 String find() 함수의 세 가지 매개변수입니다.

    • substring : 주어진 문자열에서 검색하려는 부분 문자열입니다.
    • start : (선택 사항) 부분 문자열 검색이 시작되는 시작 값입니다. 기본적으로 0입니다.
    • end : (선택 사항) 부분 문자열 검색이 끝나는 끝 값입니다. 기본적으로 값은 문자열의 길이입니다.

    find() 메소드의 활용 예

    기본값이 있는 find() 메소드의 예

    Python find() 메소드에 전달되는 매개변수는 하위 문자열, 즉 검색하려는 문자열, 시작 및 종료입니다. 시작 값은 기본적으로 0이고 끝 값은 문자열의 길이입니다.

    이 예에서는 기본값을 사용하여 Python의 find() 메서드를 사용합니다.

    find() 메서드는 하위 문자열을 검색하고 하위 문자열이 처음 나타나는 위치를 제공합니다. 이제 하위 문자열이 주어진 문자열에 여러 번 존재하더라도 여전히 첫 번째 문자열의 인덱스 또는 위치를 반환합니다.

    ## 입력
    
    mystring = "Meet Entity123 Tutorials Site.Best site for Python Tutorials!"
    print("The position of Tutorials is at:", mystring.find("Tutorials"))
    ## 출력
    
    The position of Tutorials is at: 15

     

    시작 인수를 사용하는 find()의 예

    주어진 문자열에서 하위 문자열을 검색하고 검색이 시작되는 시작 위치를 지정할 수 있습니다. 시작 매개변수는 동일하게 사용할 수 있습니다.

    이 예제에서는 시작 위치를 15로 지정하고 Python 메서드의 find()는 위치 15에서 검색을 시작합니다. 여기서 끝 위치는 문자열의 길이이며 15개 위치에서 문자열 끝까지 검색합니다. 

    ## 입력
    
    mystring = "Meet Entity123 Tutorials Site.Best site for Python Tutorials!"
    print("The position of Tutorials is at:", mystring.find("Tutorials", 20))
    ## 출력
    
    The position of Tutorials is at: 51

     

    시작 및 종료 인수를 사용하는 find()의 예

    시작 및 종료 매개변수를 사용하여 전체 문자열을 검색하는 대신 검색을 제한하려고 합니다.

    ## 입력
    
    mystring = "Meet Entity123 Tutorials Site.Best site for Python Tutorials!"
    print("The position of Tutorials is at:", mystring.find("Tutorials", 5, 30))
    ## 출력
    
    The position of Tutorials is at: 15

     

    find() 메소드의 문자열에서 주어진 부분 문자열의 위치를 ​​찾으려면

    find()가 부분 문자열이 처음 나타나는 인덱스를 찾는 데 도움이 된다는 것을 알고 있습니다. 지정된 문자열에 하위 문자열이 없으면 -1을 반환합니다. 아래 예는 문자열이 있을 때 인덱스를 보여주고 찾고 있는 부분 문자열을 찾지 못할 때 -1을 보여줍니다.

    ## 입력
    
    mystring = "Meet Entity123 Tutorials Site.Best site for Python Tutorials!"
    print("The position of Best site is at:", mystring.find("Best site", 5, 40))
    print("The position of Entity123 is at:", mystring.find("Entity123", 20))
    ## 출력
    
    The position of Best site is at: 30
    The position of Entity123 is at: -1

     

    파이썬 문자열 rfind()

    Python 함수 rfind()는 find() 함수와 유사하지만 rfind()는 주어진 부분 문자열에 대해 가장 높은 인덱스를 제공하고 find()는 가장 낮은 즉, 첫 번째 인덱스를 제공한다는 점만 다릅니다. rfind()와 find()는 하위 문자열이 없으면 -1을 반환합니다.

    아래 예에는 “Meet Entity123 Tutorials Site. 파이썬 튜토리얼 을 위한 최고의 사이트 !” find() 및 rfind()를 사용하여 하위 문자열 Tutorials의 위치를 ​​찾으려고 시도합니다. 문자열에서 Tutorials의 발생은 두 번입니다.

    다음은 find()와 rfind()가 모두 사용되는 예입니다.

    ## 입력
    
    mystring = "Meet Entity123 Tutorials Site.Best site for Python Tutorials!"
    print("The position of Tutorials using find() : ", mystring.find("Tutorials"))
    print("The position of Tutorials using rfind() : ", mystring.rfind("Tutorials"))
    ## 출력 
    
    The position of Tutorials using find() :  15
    The position of Tutorials using rfind() :  51

    결과는 find()가 가져온 첫 번째 Tutorials 하위 문자열의 인덱스를 제공하고 rfind()가 하위 문자열 Tutorials의 마지막 인덱스를 제공함을 보여줍니다.

     

    파이썬 문자열 index()

    파이썬 문자열 index()는 find()처럼 주어진 부분 문자열의 위치를 ​​알려주는 함수입니다. 둘의 유일한 차이점은 하위 문자열이 문자열에 없으면 index()가 예외를 throw하고 find()가 -1을 반환한다는 것입니다.

    다음은 index() 및 find()의 동작을 보여주는 작업 예제입니다.

    ## 입력 1
    
    mystring = "Meet Entity123 Tutorials Site.Best site for Python Tutorials!"
    print("The position of Tutorials using find() : ", mystring.find("Tutorials"))
    print("The position of Tutorials using index() : ", mystring.index("Tutorials"))
    ## 출력 1
    
    The position of Tutorials using find() :  15
    The position of Tutorials using index() :  15

    find() 및 index() 모두에 대해 동일한 위치를 얻고 있습니다. 주어진 부분 문자열이 문자열에 없는 경우의 예를 살펴보겠습니다.

    ## 입력 2
    
    mystring = "Meet Entity123 Tutorials Site.Best site for Python Tutorials!"
    print("The position of Tutorials using find() : ", mystring.find("test"))
    print("The position of Tutorials using index() : ", mystring.index("test"))
    ## 출력 2
    
    The position of Tutorials using find() :  -1
    Traceback (most recent call last):
      File "<input>", line 5, in <module>
    ValueError: substring not found

    위의 예에서 "test" 부분 문자열의 위치를 ​​찾으려고 합니다. 부분 문자열은 주어진 문자열에 존재하지 않으므로 find()를 사용하여 위치를 -1로 얻지만 index()의 경우 위와 같이 오류가 발생합니다.

     

    부분 문자열의 총 발생을 찾으려면?

    주어진 문자열에서 부분 문자열이 발생한 총 횟수를 찾기 위해 파이썬에서 find() 함수를 사용할 것입니다. 0에서 문자열 끝까지 for 루프를 사용하여 문자열을 반복합니다. find()에 startIndex 매개변수를 사용합니다.

    변수 startIndex 및 count는 0으로 초기화됩니다. 내부 for –loop은 find() 및 startIndex를 0으로 사용하여 제공된 문자열 내부에 하위 문자열이 있는지 확인합니다.

    -1이 아닌 경우 find()에서 반환된 값은 startIndex를 문자열이 발견된 인덱스로 업데이트하고 카운트 값도 증가시킵니다.

    ## 입력
    
    my_string = "test string test, test string testing, test string test string"
    startIndex = 0
    count = 0
    for i in range(len(my_string)):
        k = my_string.find('test', startIndex)
        if(k != -1):
            startIndex = k+1
            count += 1
            k = 0
    
    print("The total count of substring test is: ", count )
    ## 출력
    
    The total count of substring test is:  6

     

    ## 정리 ##

    • Python 문자열 find() 메서드는 주어진 문자열에서 하위 문자열이 처음 나타나는 인덱스를 찾는 데 도움이 됩니다. 하위 문자열이 없으면 -1을 반환합니다.
    • Python find substring 메소드에 전달된 매개변수는 substring, 즉 검색하려는 문자열, 시작 및 종료입니다. 시작 값은 기본적으로 0이고 끝 값은 문자열의 길이입니다.
    • 주어진 문자열에서 하위 문자열을 검색하고 검색이 시작되는 시작 위치를 지정할 수 있습니다. 시작 매개변수는 동일하게 사용할 수 있습니다.
    • 시작 및 종료 매개변수를 사용하여 전체 문자열을 검색하는 대신 검색을 제한하려고 합니다.
    • Python 함수 rfind()는 find() 함수와 유사하지만 rfind()는 주어진 부분 문자열에 대해 가장 높은 인덱스를 제공하고 find()는 가장 낮은 즉, 첫 번째 인덱스를 제공한다는 점만 다릅니다. rfind()와 find()는 하위 문자열이 없으면 -1을 반환합니다.
    • 파이썬 문자열 index()는 find()처럼 주어진 부분 문자열의 위치를 ​​알려주는 또 다른 함수입니다. 둘의 유일한 차이점은 하위 문자열이 문자열에 없으면 index()가 예외를 throw하고 find()가 -1을 반환한다는 것입니다.
    • find()를 사용하여 주어진 문자열에서 부분 문자열의 총 발생 횟수를 찾을 수 있습니다.
    반응형

    댓글