매일 업데이트
2022-10-30 03:57 7 min

예제를 통해 Python의 부분 문자열 이해하기

본 문서는 파이썬에서 부분 문자열을 효과적으로 다루는 방법을 학습자에게 안내하는 것을 목표로 합니다.

여기서는 부분 문자열을 생성하는 다양한 방법, 문자열에서 특정 부분을 추출하는 기술, 그리고 파이썬에서 부분 문자열이 어떻게 작동하는지 여러 예시를 통해 설명합니다. 또한, 문자열 내에서 부분 문자열의 존재 여부를 확인하는 방법도 살펴볼 것입니다.

시작하기 전에 문자열과 부분 문자열의 개념을 명확히 하는 것이 중요합니다. 문자열은 문자, 숫자, 특수 문자로 구성된 유니코드 문자들의 나열입니다. 부분 문자열은 문자열 내에서 특정 연속된 문자들의 부분을 의미합니다.

다음 주제들을 자세히 다룰 예정입니다:

  • 부분 문자열 생성 방법
  • 문자열 슬라이싱을 이용한 부분 문자열 추출
  • 부분 문자열의 출현 빈도 계산
  • 문자열 내에서 부분 문자열의 존재 여부 확인

자, 시작해 봅시다!

부분 문자열 생성하기

부분 문자열은 주로 슬라이싱 기법을 통해 생성됩니다. 슬라이싱을 사용하면 시작 인덱스, 끝 인덱스, 그리고 스텝 값을 지정하여 원하는 문자열 부분을 추출할 수 있습니다. 이러한 매개변수들을 통해 원하는 문자의 정확한 위치를 정의하고 추출할 수 있습니다.

기본 구문은 다음과 같습니다:

문자열[시작 인덱스: 끝 인덱스: 스텝]

파이썬에서 모든 문자열의 인덱스는 0부터 시작합니다.

시작 인덱스 매개변수는 추출할 부분 문자열의 시작 위치를 나타냅니다. 이 매개변수를 생략하면 파이썬은 기본적으로 인덱스 0을 시작점으로 간주합니다.

끝 인덱스는 부분 문자열이 끝나는 위치를 지정합니다. 이 값이 생략되면 슬라이싱은 문자열의 끝까지를 범위로 설정합니다.

스텝 매개변수는 현재 문자 이후 다음 문자를 선택할 때 건너뛸 문자 수를 나타냅니다. 일반적으로 1로 설정되며, 생략할 경우에도 기본값은 1입니다.

문자열을 슬라이싱하는 다양한 방법

문자열에서 부분 문자열을 얻는 방법은 여러 가지가 있습니다. 주요 방법은 다음과 같습니다:

#1. 시작 인덱스와 끝 인덱스를 모두 사용하여 슬라이싱

문자열 = 문자열[시작 인덱스 : 끝 인덱스]

예를 들어, 전체 이름에서 이름 부분만 추출하고 싶다면 다음과 같이 구현할 수 있습니다.

문자열 = '김철수'

print(문자열[0:2])

출력 결과:

김철

#2. 끝 인덱스 없이 시작 인덱스만 사용하여 슬라이싱

문자열 = 문자열[시작 인덱스:]

이 경우 지정된 시작 인덱스부터 문자열의 끝까지 부분 문자열이 추출됩니다. 시작 인덱스가 -1이면 문자열의 마지막 문자부터 추출이 시작됩니다.

예시:

문자열 = '이것은 끝 인덱스 없이 시작 인덱스만 사용하여 문자열을 슬라이싱하는 예시입니다.'

print(문자열[4:])

출력 결과:

는 끝 인덱스 없이 시작 인덱스만 사용하여 문자열을 슬라이싱하는 예시입니다.

#3. 시작 인덱스 없이 끝 인덱스만 사용하여 슬라이싱

문자열 = 문자열[:끝 인덱스]

이 방법은 문자열의 처음부터 지정된 끝 인덱스까지의 부분 문자열을 추출합니다. 따라서, 슬라이싱은 문자열의 0번 인덱스부터 시작됩니다.

예시:

문자열 = '이것은 시작 인덱스 없이 끝 인덱스만 사용하여 문자열을 슬라이싱하는 예시입니다.'

print(문자열[:6])

출력 결과:

이것은

#4. 전체 문자열 슬라이싱

문자열 = 문자열[ : ]

시작 및 끝 인덱스를 생략하면 문자열 전체가 반환됩니다.

예시:

문자열 = '전체 문자열을 슬라이싱하는 예시입니다.'

print(문자열[:])

출력 결과:

전체 문자열을 슬라이싱하는 예시입니다.

#5. 특정 인덱스의 단일 문자 슬라이싱

문자열 = 문자열[인덱스]

문자열 내 특정 인덱스에 해당하는 문자를 추출합니다.

예시:

문자열 = '문자열에서 특정 문자를 슬라이싱하는 예시입니다.'

print(문자열[7])

결과적으로 8번째 문자인 '특'이 출력됩니다.

#6. 시작 인덱스, 끝 인덱스, 스텝 값을 사용하여 슬라이싱

예시

문자열 = '이것은 시작, 스텝, 끝 인덱스를 사용하여 문자열을 슬라이싱하는 예시입니다.'

print(문자열[4:16:1])

스텝 값이 1이면 일반적인 슬라이싱이 수행되어 다음과 같은 결과가 출력됩니다.

은 시작, 스텝, 

같은 예시에서 스텝 값을 2로 변경해 보겠습니다.

문자열 = '이것은 시작, 스텝, 끝 인덱스를 사용하여 문자열을 슬라이싱하는 예시입니다.'

print(문자열[4:16:2])

스텝 값이 2이므로 두 칸씩 건너뛰면서 슬라이싱이 수행됩니다.

은  스 

따라서 파이썬은 '은' 다음 문자를 건너뛰고 '스'를 선택하는 방식으로 진행됩니다.

#7. 음수 스텝을 사용하여 문자열 뒤집기

이 경우 문자열의 마지막 문자부터 첫 번째 문자까지 역순으로 표시됩니다.

문자열 = '음수 스텝을 사용하여 문자열을 뒤집는 예시입니다.'

print(문자열[::-1])

출력 결과:

다니입세의 는다입예 릇뒤을열자문 여하용사 을텝스 수음

음수 스텝은 다음과 같이 작동합니다.

문자
...
0
1
2
3
4
5
6
-6
-5
-4
-3
-2
-1

위의 예시에서 역순으로 출력되는 문자열의 시작 인덱스는 기본적으로 0에서 시작하여 6에서 끝납니다. 음수 스텝은 마지막 문자의 인덱스 값을 역전시켜 첫 번째 문자에 적용하고 이 값을 무효화합니다.

슬라이싱 추가 예시

문자열에서 처음 4개의 문자를 가져옵니다.

문자열 = '문자들'

print(문자열[0:4])

출력 결과:

문자들

문자열에서 부분 문자열의 존재 확인

파이썬에서는 find() 함수 또는 in 연산자를 사용하여 문자열 내에 부분 문자열이 존재하는지 확인할 수 있습니다.

in 연산자 사용 예시

문자열 = '이 문자열 내에 특정 부분 문자열이 있는지 확인하는 예시입니다.'
if '확인' in 문자열:
    print('부분 문자열이 발견되었습니다.')
else:
    print('부분 문자열을 찾을 수 없습니다.')

출력 결과:

부분 문자열이 발견되었습니다.

위 예시는 '확인'이라는 부분 문자열이 주어진 문자열 내에 존재하는지 검사합니다. 문자열에 '확인'이 존재하므로 '부분 문자열이 발견되었습니다'가 출력됩니다.

만약 부분 문자열을 '발견'으로 바꾸고 다시 확인하면 문자열에 해당 부분이 존재하지 않으므로 '부분 문자열을 찾을 수 없습니다'라는 결과가 출력됩니다.

find() 함수 사용 예시:

문자열 = '문자열에서 부분 문자열이 존재하는지 확인하는 함수입니다.'

if 문자열.find('존재') != -1:
    print("부분 문자열 '존재'가 있습니다.")
else:
    print("부분 문자열 '존재'가 없습니다.")

출력 결과:

부분 문자열 '존재'가 있습니다.

위 예시에서는 문자열 내에 '존재'라는 부분 문자열이 있는지 찾았습니다. find() 함수는 전체 문자열을 검색하고 '존재'라는 부분 문자열을 찾으면 해당 인덱스 값을 반환하며, 없을 경우 -1을 반환합니다.

부분 문자열의 출현 횟수 세기

파이썬에서는 count() 함수를 사용하여 특정 부분 문자열이 몇 번 나타나는지 셀 수 있습니다. 아래 예시를 참고하십시오.

문자열 = "이 문자열에서 'o'가 몇 번 나타나는지 세어봅니다."

print("부분 문자열 'o'의 횟수는: ", 문자열.count('o'))

출력 결과:

부분 문자열 'o'의 횟수는: 2

결론

이 문서는 파이썬에서 부분 문자열이 무엇인지, 어떻게 생성하는지, 슬라이싱 기법은 무엇이며, 어떻게 구현하는지에 대한 명확한 이해를 제공했습니다. 제공된 예시를 참고하여 더 많은 실습을 통해 개념을 확실히 다져보세요.

파이썬을 사용하여 숫자 추측 게임을 만들거나, JSON 데이터를 처리하는 방법을 배우는 것도 좋은 학습 방법입니다.

즐거운 코딩하세요!

저자
Korea

기술 트렌드와 실용적인 팁을 전하는 लेखक입니다.