PYTHON

파이썬 문자열 처리 기초 가이드

DevMaster!! 2024. 8. 15. 16:36

파이썬(Python)에서 문자열은 텍스트 데이터를 다루기 위해 사용되는 기본적인 데이터 타입 중 하나입니다. 문자열은 단순히 텍스트를 저장하는 것뿐만 아니라, 다양한 방법으로 조작할 수 있습니다. 이번 포스팅에서는 파이썬의 문자열 처리 기초에 대해 알아보고, 문자열을 다루는 기본적인 방법들을 소개하겠습니다.

1. 문자열(String)이란?

문자열은 문자(Character)들이 일렬로 나열된 시퀀스로, 작은따옴표(') 또는 큰따옴표(")로 감싸서 표현합니다. 파이썬에서는 작은따옴표와 큰따옴표를 혼용해도 문제가 없습니다.

문자열 생성 예시

# 문자열 생성
greeting = "Hello, World!"
name = 'Alice'

위 예제에서 greeting과 name은 모두 문자열 변수입니다.

2. 문자열 인덱싱과 슬라이싱

문자열은 시퀀스 자료형으로, 각 문자마다 인덱스(위치 값)가 부여됩니다. 문자열의 첫 번째 문자는 인덱스 0부터 시작합니다.

2.1. 문자열 인덱싱

인덱싱(Indexing)을 사용하면 문자열의 특정 위치에 있는 문자를 가져올 수 있습니다.

# 문자열 인덱싱
word = "Python"
print(word[0])  # 출력: P
print(word[5])  # 출력: n

파이썬에서는 음수 인덱스를 사용하여 문자열의 끝에서부터 문자를 참조할 수도 있습니다.

# 음수 인덱싱
print(word[-1])  # 출력: n
print(word[-2])  # 출력: o

2.2. 문자열 슬라이싱

슬라이싱(Slicing)은 문자열의 일부분을 추출하는 방법입니다. [시작:끝:스텝] 형식을 사용하여 문자열의 부분 문자열(Substring)을 추출할 수 있습니다.

# 문자열 슬라이싱
word = "Python"
print(word[0:2])  # 출력: Py
print(word[2:])   # 출력: thon
print(word[:4])   # 출력: Pyth
print(word[1:5:2])  # 출력: yh (1번째부터 4번째까지 2칸씩 건너뜀)

슬라이싱에서 시작이나  값을 생략하면, 문자열의 처음 또는 끝까지 슬라이싱됩니다. 스텝은 슬라이싱 시 건너뛰는 간격을 지정하며, 생략하면 기본값인 1로 설정됩니다.

3. 문자열 연산

파이썬에서는 문자열에 대해 여러 가지 연산을 수행할 수 있습니다. 대표적인 연산으로는 문자열 연결, 반복, 길이 계산 등이 있습니다.

3.1. 문자열 연결

두 개 이상의 문자열을 + 연산자를 사용해 연결할 수 있습니다.

# 문자열 연결
greeting = "Hello, " + "World!"
print(greeting)  # 출력: Hello, World!

3.2. 문자열 반복

* 연산자를 사용해 문자열을 반복할 수 있습니다.

# 문자열 반복
echo = "Echo! " * 3
print(echo)  # 출력: Echo! Echo! Echo!

3.3. 문자열 길이

len() 함수를 사용해 문자열의 길이(문자의 개수)를 구할 수 있습니다.

# 문자열 길이
word = "Python"
print(len(word))  # 출력: 6

4. 문자열 메서드

파이썬은 문자열을 조작하기 위한 다양한 메서드를 제공합니다. 이 중 자주 사용되는 몇 가지를 소개합니다.

4.1. 대소문자 변환

  • upper(): 문자열을 모두 대문자로 변환합니다.
  • lower(): 문자열을 모두 소문자로 변환합니다.
  • capitalize(): 문자열의 첫 글자를 대문자로 변환합니다.
  • title(): 각 단어의 첫 글자를 대문자로 변환합니다.
text = "hello, python!"
print(text.upper())       # 출력: HELLO, PYTHON!
print(text.lower())       # 출력: hello, python!
print(text.capitalize())  # 출력: Hello, python!
print(text.title())       # 출력: Hello, Python!

4.2. 문자열 찾기 및 교체

  • find(): 특정 문자열이 처음으로 등장하는 위치(인덱스)를 반환합니다. 문자열이 없으면 -1을 반환합니다.
  • replace(): 문자열 내의 특정 부분을 다른 문자열로 교체합니다.
text = "Hello, World!"
print(text.find("World"))  # 출력: 7
print(text.replace("World", "Python"))  # 출력: Hello, Python!

4.3. 문자열 분할과 결합

  • split(): 문자열을 특정 구분자(Delimiter)로 분할하여 리스트로 반환합니다. 기본 구분자는 공백입니다.
  • join(): 리스트의 문자열을 특정 구분자로 결합하여 하나의 문자열로 만듭니다.
text = "apple, banana, cherry"
fruits = text.split(", ")  # 쉼표와 공백을 기준으로 분할
print(fruits)  # 출력: ['apple', 'banana', 'cherry']

# 리스트의 문자열을 결합
joined_text = " - ".join(fruits)
print(joined_text)  # 출력: apple - banana - cherry

4.4. 공백 제거

  • strip(): 문자열의 양쪽 끝에서 공백 또는 특정 문자를 제거합니다.
  • lstrip(): 문자열의 왼쪽 끝에서 공백을 제거합니다.
  • rstrip(): 문자열의 오른쪽 끝에서 공백을 제거합니다.
text = "   Hello, Python!   "
print(text.strip())   # 출력: Hello, Python!
print(text.lstrip())  # 출력: Hello, Python!   
print(text.rstrip())  # 출력:    Hello, Python!

5. 문자열 포매팅

파이썬에서는 문자열 내에 변수나 값을 삽입하기 위해 문자열 포매팅을 사용합니다. 다양한 방법이 있지만, 가장 많이 사용되는 두 가지 방법을 소개합니다.

5.1. format() 메서드

format() 메서드를 사용하여 문자열에 변수를 삽입할 수 있습니다.

name = "Alice"
age = 25
text = "My name is {} and I am {} years old.".format(name, age)
print(text)  # 출력: My name is Alice and I am 25 years old.

5.2. f-문자열 (f-string)

파이썬 3.6 이상에서는 f-문자열을 사용해 보다 직관적으로 문자열을 포맷할 수 있습니다.

name = "Alice"
age = 25
text = f"My name is {name} and I am {age} years old."
print(text)  # 출력: My name is Alice and I am 25 years old.

f-문자열은 중괄호 {} 안에 변수명을 직접 넣어 사용할 수 있으며, 간결하고 읽기 쉬운 장점이 있습니다.

6. 결론

이번 포스팅에서는 파이썬의 문자열 처리 기초에 대해 알아보았습니다. 문자열은 파이썬에서 매우 중요한 데이터 타입이며, 다양한 방법으로 조작할 수 있습니다. 문자열 인덱싱과 슬라이싱, 문자열 메서드, 포매팅 등을 익히면 더욱 효율적으로 코드를 작성할 수 있습니다. 다음 포스팅에서는 리스트와 튜플에 대해 다루어 보겠습니다.


이 글을 통해 독자들이 파이썬에서 문자열을 다루는 기본적인 방법을 이해하고, 실습을 통해 더욱 익숙해질 수 있을 것입니다. 다양한 예제를 직접 따라해 보며 문자열 처리에 대한 감각을 키워보세요!