본문 바로가기

프로그래밍 언어/파이썬

Python 문자열 연산(str): 합치기, 나누기, 포매팅

Python 문자열 연산(str): 합치기, 나누기, 포매팅

Python의 문자열(String)은 단순한 문자들의 나열을 넘어서, 매우 유연하고 강력한 텍스트 처리 도구입니다. 문자열을 자유자재로 합치고, 나누고, 포맷하는 기술은 파이썬 프로그래밍의 기초이자 실전에서 가장 많이 활용되는 능력 중 하나입니다. 이 글에서는 합치기, 나누기, 포매팅을 중심으로 Python 문자열 연산을 깊이 있게 다루어봅니다.

 

 

목차

  1. 문자열 합치기 (Concatenation)
  2. 문자열 반복과 확장
  3. 문자열 나누기 (split)
  4. 고전적인 포매팅: % 방식
  5. format() 함수와 인덱스 포매팅
  6. f-string: 가장 현대적인 문자열 포매팅
  7. 문자열 연산의 모범 사례와 주의점

 

1. 문자열 합치기 (Concatenation)

Python에서 문자열 합치기는 + 연산자를 사용해 간단하게 구현할 수 있습니다.

greeting = "Hello, "
name = "Alice"
message = greeting + name
print(message)  # Hello, Alice
  
  • 문자열끼리만 결합 가능하며, 숫자는 str()로 형 변환 필요
  • 연산량이 많을 경우에는 .join()을 고려

 

 

 

2. 문자열 반복과 확장

문자열은 곱하기(*) 연산자로 반복할 수 있습니다.

print("ha" * 3)  # 출력: hahaha
  

로딩 표시나 텍스트 블록 생성 등 반복이 필요한 상황에서 유용합니다.

 

 

 

3. 문자열 나누기 (split)

split() 메서드를 통해 문자열을 특정 구분자 기준으로 분할할 수 있습니다.

data = "apple,banana,cherry"
fruits = data.split(",")
print(fruits)  # ['apple', 'banana', 'cherry']
  

기본 구분자는 공백이며, 정규표현식 분할은 re.split()을 사용합니다.

 

 

 

4. 고전적인 포매팅: % 방식

초기의 포매팅 방식으로, C 스타일과 유사합니다.

name = "Tom"
age = 25
print("이름: %s, 나이: %d" % (name, age))
  
  • %s: 문자열
  • %d: 정수
  • 여러 타입에 대해 혼용 가능하나 가독성이 떨어짐

 

 

 

 

5. format() 함수와 인덱스 포매팅

Python 3부터 사용되는 str.format()은 명시적이고 유연한 포매팅 방식입니다.

template = "이름: {}, 나이: {}"
print(template.format("Jane", 30))
  

인덱스나 변수명으로 포맷할 수 있습니다.

print("이름: {name}, 나이: {age}".format(name="John", age=22))
  

 

 

 

6. f-string: 가장 현대적인 문자열 포매팅

Python 3.6부터 도입된 f-string은 가장 직관적이고 빠른 문자열 포매팅 방식입니다.

name = "Emily"
age = 27
print(f"이름: {name}, 나이: {age}")
  
  • 변수, 표현식, 함수 호출도 포함 가능
  • 성능도 가장 우수한 포매팅 방식

 

 

 

7. 문자열 연산의 모범 사례와 주의점

효율적인 문자열 연산을 위한 팁:

  • 여러 문자열을 결합할 때는 ' '.join(list) 방식 권장
  • 포매팅은 f-string 우선, 하위 버전 호환 시 format() 사용
  • 복잡한 포매팅은 템플릿 엔진이나 f-string에 표현식을 활용
기법 설명 권장 여부
+ 문자열 직접 연결 소규모 연결 시 OK
join() 리스트 등 순회하며 연결 추천
f-string 최신 포매팅 방식 강력 추천