파이썬에서 문자열을 다루다 보면 단순 출력이 아니라 값을 포함한 문장을 만들어야 하는 순간이 반드시 온다.
예를 들어
- 사용자 이름 출력
- 가격 계산 결과 출력
- 로그 메시지 생성
이럴 때 사용하는 것이 바로 문자열 포매팅(String Formatting)이다.
◆ 문자열 포매팅이란?
문자열 포매팅은 문자열 안에 변수나 계산 결과를 동적으로 삽입하는 방법이다.
name = "철수"
age = 20
print(f"{name}의 나이는 {age}입니다.")
결과 : 철수의 나이는 20입니다.
◆ f-string
Python 3.6부터 도입된 방식으로 현재 가장 권장되는 방법이다.
name = "철수"
age = 20
print(f"이름: {name}, 나이: {age}")
단순 삽입을 넘어서 "표현식" 가능
price = 3000
count = 2
print(f"총 금액: {price * count}원")
결과 : 총 금액: 6000원
즉, 변수뿐만 아니라 연산도 바로 가능하다.
포맷 제어
pi = 3.141592
print(f"{pi:.2f}")
결과 : 3.14
정렬
text = "hi"
print(f"{text:<10}") # 왼쪽 정렬
print(f"{text:>10}") # 오른쪽 정렬
print(f"{text:^10}") # 가운데 정렬
디버깅용 기능
x = 10
print(f"{x=}")
결과 : x=10
변수 이름까지 같이 출력됨 → 디버깅에 매우 유용
◆ format() 함수 (유연한 포맷팅)
f-string 이전에 많이 사용되더 방식이지만 여전히 복잡한 포맷 처리에서 강력하다
name = "철수"
age = 20
print("이름: {}, 나이: {}".format(name, age))
인덱스 기반
print("{0} {1} {0}".format("A", "B"))
결과 : A B A
이름 기반
print("{name}은 {age}살입니다".format(name="철수", age=20))
포맷 지정
print("{:>10}".format("hi"))
문자열 내 중괄호 출력
print("{{}}")
결과 : {}
◆ % 포매팅 (레거시 방식)
C언어 스타일의 포매팅 방식으로 오래된 코드에서 자주 보인다.
name = "철수"
age = 20
print("이름: %s, 나이: %d" % (name, age))
주요 포맷 코드
- %s : 문자열
- %d : 정수
- %f : 실수
한계
- 타입을 맞춰야 함
- 가독성 낮음
- 유지보수 불리
신규 코드에서는 거의 사용하지 않는다.
◆ 정리
- 문자열 포매팅 = 문자열 + 값 결합
- f-string이 현재 표준
- format은 보조
- %는 레거시
'Python' 카테고리의 다른 글
| while문 정리(반복문 기초부터 break, continue, 무한 루프까지) (1) | 2026.04.27 |
|---|---|
| if문 정리 (0) | 2026.04.27 |
| 파이썬 리스트 vs 튜플 차이와 리스트 복사 방법 (0) | 2026.04.23 |
| 리스트, 튜플, 딕셔너리, 집합 쉽게 이해하기 (0) | 2026.04.23 |
| 인터프리터, 변수, 자료형 이해하기 (0) | 2026.04.22 |
