✨ 파이썬에서 문자열 포매팅 완전 정리
문자열 안에 변수, 숫자, 계산식 넣는 방법은?
파이썬을 쓰다 보면 문자열 안에 변수 값, 숫자, 계산 결과를 넣고 싶을 때가 많습니다.
예를 들어, "홍길동님의 나이는 25세입니다." 같은 문장을 만들고 싶은 경우죠.
이럴 때 사용하는 기술이 바로 **문자열 포매팅(Formatting)**입니다.
오늘은 파이썬에서 문자열 포매팅을 어떻게 활용할 수 있는지 기본부터 최신 문법까지 한 번에 정리해드립니다!
✅ 문자열 포매팅이란?
**문자열 포매팅(String Formatting)**은
문자열 안에 변수나 값을 삽입해서 동적으로 문장을 만드는 방법입니다.
📌 파이썬 문자열 포매팅 방식 3가지
방식 | 특징 | 예시 |
1. % 방식 | 오래된 방식 (Python 2, 3 지원) | "이름: %s" % name |
2. str.format() | Python 3 기본 방식 | "이름: {}".format(name) |
3. f-string | Python 3.6+ 최신 방식 | f"이름: {name}" |
각 방식별로 하나씩 살펴볼게요!
🧓 1. % 방식 (고전 방식)
name = "철수"
age = 25
print("이름: %s, 나이: %d" % (name, age)) # 결과: 이름: 철수, 나이: 25
- %s: 문자열
- %d: 정수
- %f: 실수
🔸 단점: 변수 개수와 포맷 개수를 정확히 맞춰야 하며, 복잡한 포매팅에 불편함
✨ 2. str.format() 방식
name = "영희"
age = 30
print("이름: {}, 나이: {}".format(name, age)) # 결과: 이름: 영희, 나이: 30
인덱스를 사용할 수도 있어요:
print("나이: {1}, 이름: {0}".format(name, age)) # 결과: 나이: 30, 이름: 영희
🔸 장점: 순서를 바꿀 수 있고, 변수명을 지정해서 포맷 가능
🚀 3. f-string 방식 (파이썬 3.6 이상)
name = "지민"
age = 22
print(f"이름: {name}, 나이: {age}") # 결과: 이름: 지민, 나이: 22
- 변수명을 중괄호 {}에 넣기만 하면 자동으로 문자열에 삽입
- 수식도 바로 계산 가능
print(f"내년 나이는 {age + 1}세입니다.") # 결과: 내년 나이는 23세입니다.
🔸 가장 간편하고 추천되는 방식
💡 실전 포매팅 예시
📋 1. 숫자 포매팅 (자리수 맞추기, 소수점 조절)
pi = 3.141592
print(f"원주율은 {pi:.2f}") # 소수점 둘째 자리까지: 3.14
📋 2. 자릿수 채우기
num = 7
print(f"번호: {num:03}") # 결과: 번호: 007
📋 3. 정렬하기
print(f"|{'왼쪽':<10}|{'가운데':^10}|{'오른쪽':>10}|") # 결과: |왼쪽 | 가운데 | 오른쪽|
🧠 어떤 포매팅을 써야 할까?
방식 | 추천도 | 이유 |
% 방식 | ❌ 비추천 | 구식, 비효율적 |
format() | ⚪ 무난함 | 다양한 표현 가능 |
f-string | ✅ 강력 추천 | 가장 간단하고 읽기 쉬움 |
🧪 실습 예제
product = "노트북"
price = 1290000
discount = 0.1
print(f"{product}의 원가는 {price}원이며, 할인가는 {int(price * (1 - discount))}원입니다.")
⚠️ 주의할 점
- f-string은 파이썬 3.6 이상에서만 사용 가능
- 문자열 안에 중괄호 {}를 직접 출력하려면 {{ }}로 써야 함
print(f"중괄호 출력: {{Python}}") # 결과: 중괄호 출력: {Python}
🏁 마무리
파이썬에서 문자열을 다루는 데 있어서 포매팅은 필수 기능입니다.
특히 f-string을 활용하면 코드를 짧고, 읽기 쉽게 만들 수 있어요.
문자열 안에 변수를 넣고 싶을 때는
📌 무조건 f"{변수}"를 떠올려보세요!
'공부하기' 카테고리의 다른 글
[파이썬] 조건문 (3) | 2025.06.08 |
---|---|
[파이썬] 타입 변환 (0) | 2025.06.03 |
[파이썬] 문자열 길이와 공백 제거 (0) | 2025.06.01 |
[파이썬] 문자열 변경 (1) | 2025.06.01 |
[파이썬] 문자열 분리 (0) | 2025.06.01 |