Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python 텍스트 시퀀스 유형(str) 완벽 정리 – 문자열 기초와 주요 메서드

Python에서 텍스트(문자열) 데이터는 str 객체가 담당합니다. 문자열은 변경 불가능(immutable)한 유형으로, 한 번 생성된 후에는 내용을 직접 수정할 수 없습니다. 또한 문자열은 유니코드(Unicode) 문자들의 시퀀스이기 때문에 한글을 포함한 다양한 언어의 문자를 문제없이 다룰 수 있습니다.

문자열 리터럴 표기법

Python에서는 작은따옴표('), 큰따옴표("), 그리고 세 개의 따옴표(''' 또는 """)를 사용해 문자열 리터럴을 정의할 수 있습니다.

  • '작은따옴표로 감싼 문자열'
  • "큰따옴표로 감싼 문자열"
  • '''세 개의 작은따옴표로 감싼 문자열''' 또는 """세 개의 큰따옴표로 감싼 문자열"""

특히 삼중 따옴표(triple quotes)를 사용하면 여러 줄에 걸친 문자열(multiline string)을 간편하게 할당할 수 있어, 긴 설명문이나 문서화 문자열(docstring) 작성에 유용합니다.

주요 문자열 메서드

Python은 문자열 처리를 위한 다양한 내장 메서드를 제공합니다. 자주 사용되는 대표적인 메서드는 다음과 같습니다.

번호메서드 및 설명
1

s.capitalize()

첫 번째 문자만 대문자로 변환하고 나머지는 소문자로 만듭니다.

2

s.center(width[, fillchar])

문자열을 지정한 너비 중앙에 배치하고, 남는 공간을 지정한 문자로 채웁니다. 기본값은 공백입니다.

3

s.count(sub[, start[, end]])

문자열 안에서 특정 부분 문자열이 등장하는 횟수를 반환합니다.

4

s.find(sub[, start[, end]])

부분 문자열이 처음 등장하는 위치(인덱스)를 반환하며, 없으면 -1을 반환합니다.

5

s.format(*args, **kwargs)

문자열을 서식화하여 보기 좋은 출력 결과를 만듭니다.

6

s.isalnum()

모든 문자가 알파벳 또는 숫자인지 검사합니다.

7

s.isalpha()

모든 문자가 알파벳인지 검사합니다.

8

s.isdigit()

모든 문자가 숫자(디지트)인지 검사합니다.

9

s.isspace()

문자열이 공백 문자로만 이루어져 있는지 검사합니다.

10

s.join(iterable)

반복 가능한(iterable) 요소들을 지정한 구분자로 연결하여 하나의 문자열로 합칩니다.

11

s.ljust(width[, fillchar])

왼쪽 정렬된 문자열을 반환합니다.

12

s.rjust(width[, fillchar])

오른쪽 정렬된 문자열을 반환합니다.

13

s.lower()

모든 문자를 소문자로 변환합니다.

14

s.split(sep=None, maxsplit=-1)

지정한 구분자를 기준으로 문자열을 분리하여 리스트로 반환합니다.

15

s.strip([chars])

문자열 양쪽 끝에서 지정한 문자(기본값: 공백)를 제거합니다.

16

s.swapcase()

대문자는 소문자로, 소문자는 대문자로 서로 바꿉니다.

17

s.upper()

모든 문자를 대문자로 변환합니다.

18

s.zfill(width)

문자열 앞에 0을 채워 지정한 길이의 문자열로 만듭니다.

예제 코드

myStr1 = 'This is a Python String'
myStr2 = "hello world"

print(myStr2)
print(myStr2.capitalize())

print(myStr2.center(len(myStr1)))
print(myStr1)

print(myStr1.find('Py'))  # 부분 문자열 'Py'의 위치
myStr3 = 'abc123'
print(myStr3.isalnum())
print(myStr3.isdigit())

print('AB'.join('XY'))
print(myStr2.rjust(20, '_'))  # 오른쪽 정렬 후 '_' 문자로 채우기
print(myStr1.swapcase())

print('2509'.zfill(10))  # 0을 채워 10자리 문자열로 만들기

실행 결과

hello world
Hello world
      hello world      
This is a Python String
10
True
False
XABY
_________hello world
tHIS IS A pYTHON sTRING
0000002509

정리

Python의 str 객체는 불변이며 유니코드 기반 시퀀스라는 점을 기억하면 됩니다. capitalize(), find(), join(), split() 같은 문자열 메서드를 잘 활용하면 텍스트 데이터를 손쉽게 가공할 수 있습니다. 위 예제 코드를 직접 실행해 보며 각 메서드의 동작 방식을 익혀보시기 바랍니다.