Python 에서 문자열이 부분 문자열을 포함하는지 확인하는 방법

PythonBeginner
지금 연습하기

소개

이 랩에서는 Python 에서 문자열에 부분 문자열이 포함되어 있는지 확인하는 방법을 배우게 됩니다. 이 랩은 양수 및 음수 인덱스를 사용하여 슬라이싱을 통해 부분 문자열을 정의하는 과정을 안내합니다. substrings.py라는 Python 스크립트를 생성하여 주어진 문자열에서 부분 문자열을 추출하고 콘솔에 출력합니다.

이 랩은 슬라이싱을 사용하여 부분 문자열을 정의하는 방법을 보여주며, 시작 및 종료 인덱스를 지정하여 문자열의 일부를 추출합니다. "Hello, LabEx!" 문자열에서 "Hello" 및 "LabEx"와 같은 부분 문자열을 추출하는 방법과 음수 인덱싱을 사용하여 문자열의 마지막 문자에 접근하는 방법을 배우게 됩니다. 이 랩에는 스크립트를 실행하고 출력을 확인하는 방법에 대한 지침이 포함되어 있습니다.

부분 문자열 정의

이 단계에서는 Python 에서 부분 문자열을 정의하는 방법을 배우게 됩니다. 부분 문자열은 문자열 내의 연속된 문자 시퀀스입니다. 부분 문자열을 사용하는 방법을 이해하는 것은 많은 문자열 조작 작업에 필수적입니다.

~/project 디렉토리에 substrings.py라는 Python 스크립트를 생성하는 것으로 시작해 보겠습니다. VS Code 편집기를 사용하여 이 파일을 생성할 수 있습니다.

## ~/project/substrings.py
string = "Hello, LabEx!"

이 스크립트는 string이라는 문자열 변수를 "Hello, LabEx!" 값으로 초기화합니다.

이제 이 문자열에서 부분 문자열을 추출하는 코드를 추가해 보겠습니다. 부분 문자열을 정의하는 간단한 방법은 슬라이싱 (slicing) 을 사용하는 것입니다. 슬라이싱을 사용하면 시작 및 종료 인덱스를 지정하여 문자열의 일부를 추출할 수 있습니다.

substrings.py 파일에 다음 줄을 추가합니다.

## ~/project/substrings.py
string = "Hello, LabEx!"

substring1 = string[0:5]  ## 인덱스 0 부터 4 까지의 문자
substring2 = string[7:12] ## 인덱스 7 부터 11 까지의 문자

print(substring1)
print(substring2)

이 예에서 substring1은 인덱스 0 부터 (포함하지 않고) 인덱스 5 까지의 문자, 즉 "Hello"를 포함합니다. substring2는 인덱스 7 부터 (포함하지 않고) 인덱스 12 까지의 문자, 즉 "LabEx"를 포함합니다.

스크립트를 실행하려면 VS Code 에서 터미널을 열고 다음 명령을 실행합니다.

python ~/project/substrings.py

다음 출력을 볼 수 있습니다.

Hello
LabEx

음수 인덱스를 사용하여 부분 문자열을 정의할 수도 있습니다. 음수 인덱스는 문자열의 끝에서부터 계산합니다. 예를 들어, string[-1]은 문자열의 마지막 문자를 나타냅니다.

substrings.py 파일을 수정하여 다음을 포함합니다.

## ~/project/substrings.py
string = "Hello, LabEx!"

substring1 = string[0:5]  ## 인덱스 0 부터 4 까지의 문자
substring2 = string[7:12] ## 인덱스 7 부터 11 까지의 문자
substring3 = string[-1]   ## 마지막 문자

print(substring1)
print(substring2)
print(substring3)

이제 스크립트를 다시 실행합니다.

python ~/project/substrings.py

이제 출력에 문자열의 마지막 문자가 포함되어야 합니다.

Hello
LabEx
!

슬라이싱을 사용하여 부분 문자열을 정의하는 방법을 이해하는 것은 Python 의 기본적인 기술입니다. 다양한 시작 및 종료 인덱스를 사용하여 문자열의 다양한 부분을 추출해 보십시오.

'in' 연산자 사용

이 단계에서는 Python 에서 in 연산자를 사용하여 문자열 내에 부분 문자열이 존재하는지 확인하는 방법을 배우게 됩니다. in 연산자는 부분 문자열의 존재 여부를 결정하는 간단하고 효율적인 방법입니다.

이전 단계에서 생성한 substrings.py 파일을 계속 사용해 보겠습니다. 특정 부분 문자열이 원래 문자열에 있는지 확인하는 코드를 추가할 것입니다.

VS Code 편집기를 사용하여 ~/project 디렉토리에서 substrings.py 파일을 엽니다.

## ~/project/substrings.py
string = "Hello, LabEx!"

substring1 = "Hello"
substring2 = "Python"

print(substring1 in string)
print(substring2 in string)

이 예제에서는 substring1substring2의 두 부분 문자열을 정의합니다. 그런 다음 in 연산자를 사용하여 각 부분 문자열이 string 변수에 있는지 확인합니다. in 연산자는 부분 문자열이 발견되면 True를 반환하고, 그렇지 않으면 False를 반환합니다.

스크립트를 실행하려면 VS Code 에서 터미널을 열고 다음 명령을 실행합니다.

python ~/project/substrings.py

다음 출력을 볼 수 있습니다.

True
False

이 출력은 "Hello"가 문자열 "Hello, LabEx!"에 있고, "Python"은 없음을 나타냅니다.

조건문에서 in 연산자를 사용할 수도 있습니다. substrings.py 파일을 수정하여 다음을 포함합니다.

## ~/project/substrings.py
string = "Hello, LabEx!"

substring1 = "Hello"
substring2 = "Python"

if substring1 in string:
    print(f"'{substring1}' is found in '{string}'")
else:
    print(f"'{substring1}' is not found in '{string}'")

if substring2 in string:
    print(f"'{substring2}' is found in '{string}'")
else:
    print(f"'{substring2}' is not found in '{string}'")

이제 스크립트를 다시 실행합니다.

python ~/project/substrings.py

이제 출력은 더 자세하게 표시됩니다.

'Hello' is found in 'Hello, LabEx!'
'Python' is not found in 'Hello, LabEx!'

in 연산자는 Python 에서 문자열 조작을 위한 강력한 도구입니다. 이를 통해 문자열 내에서 부분 문자열의 존재 여부를 쉽게 확인할 수 있어 코드를 더 읽기 쉽고 효율적으로 만들 수 있습니다.

find() 함수로 위치 찾기

이 단계에서는 Python 에서 find() 메서드를 사용하여 문자열 내에서 부분 문자열의 위치를 찾는 방법을 배우게 됩니다. find() 메서드는 부분 문자열의 첫 번째 발생 인덱스를 반환하거나, 부분 문자열이 발견되지 않으면 -1 을 반환합니다.

이전 단계에서 생성한 substrings.py 파일을 계속 사용해 보겠습니다. 원래 문자열 내에서 특정 부분 문자열의 위치를 찾는 코드를 추가할 것입니다.

VS Code 편집기를 사용하여 ~/project 디렉토리에서 substrings.py 파일을 엽니다.

## ~/project/substrings.py
string = "Hello, LabEx!"

substring1 = "LabEx"
substring2 = "Python"

position1 = string.find(substring1)
position2 = string.find(substring2)

print(position1)
print(position2)

이 예제에서는 substring1substring2의 두 부분 문자열을 정의합니다. 그런 다음 find() 메서드를 사용하여 각 부분 문자열의 string 변수 내 위치를 찾습니다.

스크립트를 실행하려면 VS Code 에서 터미널을 열고 다음 명령을 실행합니다.

python ~/project/substrings.py

다음 출력을 볼 수 있습니다.

7
-1

이 출력은 "LabEx"가 문자열 "Hello, LabEx!"의 인덱스 7 에서 발견되었고, "Python"은 발견되지 않았음 (-1 로 표시) 을 나타냅니다.

선택적 시작 및 종료 인덱스를 사용하여 특정 범위 내에서 부분 문자열을 검색하기 위해 find() 메서드를 사용할 수도 있습니다. substrings.py 파일을 수정하여 다음을 포함합니다.

## ~/project/substrings.py
string = "Hello, LabEx! LabEx"

substring1 = "LabEx"

position1 = string.find(substring1)         ## 첫 번째 발생 찾기
position2 = string.find(substring1, 8)      ## 인덱스 8 부터 시작하는 발생 찾기
position3 = string.find(substring1, 0, 5)   ## 처음 5 자 내에서 발생 찾기

print(position1)
print(position2)
print(position3)

이제 스크립트를 다시 실행합니다.

python ~/project/substrings.py

이제 출력은 다음과 같아야 합니다.

7
14
-1

이 예제에서:

  • position1"LabEx"의 첫 번째 발생을 인덱스 7 에서 찾습니다.
  • position2는 인덱스 8 부터 검색을 시작하므로 "LabEx"의 두 번째 발생을 인덱스 14 에서 찾습니다.
  • position3은 문자열의 처음 5 자 내에서 검색하므로 "LabEx"를 찾지 못하고 -1 을 반환합니다.

find() 메서드는 문자열 내에서 부분 문자열을 찾는 다용도 도구입니다. 선택적 시작 및 종료 인덱스를 사용하여 사용하는 방법을 이해하면 보다 타겟팅된 검색을 수행할 수 있습니다.

요약

이 랩에서는 문자열 슬라이싱을 사용하여 Python 에서 부분 문자열을 정의하는 방법을 배웠습니다. 문자열을 초기화하고 시작 및 종료 인덱스를 지정하여 부분 문자열을 추출하는 Python 스크립트를 만들었습니다. 여기에는 문자열 끝에서 문자에 액세스하기 위한 음수 인덱스 사용도 포함됩니다. 이 랩에서는 이러한 추출된 부분 문자열을 콘솔에 인쇄하는 방법을 보여주었습니다.

핵심은 Python 에서 문자열 조작의 기본 기술인, 양수 및 음수 인덱스를 모두 사용하여 문자열의 특정 부분을 정의하고 추출하는 슬라이싱을 사용하는 방법을 이해하는 것입니다.