C

파이썬 f-string 포매팅 완벽 정리 — 소수점·정렬·날짜까지

2026-05-08 · Python · 파이썬 · 기초 · 문자열

파이썬 f-string이란?

파이썬 f-string(formatted string literal)은 문자열 앞에 f를 붙이고 중괄호 {} 안에 변수나 표현식을 직접 넣어 문자열을 만드는 방식입니다. 파이썬 3.6부터 도입되었고, 기존의 % 포매팅이나 str.format()보다 짧고 빠르며 읽기 쉬워 현재 가장 널리 쓰이는 포매팅 방법입니다.

기본 문법

name = "민수"
age = 25
print(f"{name}님은 {age}살입니다.")  # 민수님은 25살입니다.

중괄호 안에는 변수뿐 아니라 연산식이나 함수 호출도 넣을 수 있습니다.

a, b = 3, 4
print(f"합은 {a + b}이고 제곱은 {a ** 2}입니다.")  # 합은 7이고 제곱은 9입니다.
print(f"대문자: {name.upper()}")

소수점 자리수 지정

콜론 뒤에 .2f처럼 쓰면 소수점 자리수를 지정합니다. f는 고정 소수점을 뜻합니다.

pi = 3.141592
print(f"{pi:.2f}")   # 3.14
print(f"{pi:.4f}")   # 3.1416
print(f"{0.25:.0%}") # 25%  (퍼센트 표시)

천 단위 구분 기호

price = 1234567
print(f"{price:,}")     # 1,234,567
print(f"{price:,.2f}")  # 1,234,567.00

정렬과 채우기

<는 왼쪽, >는 오른쪽, ^는 가운데 정렬입니다. 숫자는 전체 너비를 뜻합니다.

print(f"[{'hi':<10}]")   # [hi        ]
print(f"[{'hi':>10}]")   # [        hi]
print(f"[{'hi':^10}]")   # [    hi    ]
print(f"[{42:0>5}]")     # [00042]  (0으로 채우기)

날짜·시간 포매팅

from datetime import datetime
now = datetime(2026, 6, 21, 14, 30)
print(f"{now:%Y-%m-%d}")        # 2026-06-21
print(f"{now:%Y년 %m월 %d일}")  # 2026년 06월 21일
print(f"{now:%H:%M}")           # 14:30

실전 예제

디버깅에 유용한 = 기호(파이썬 3.8+)는 변수 이름과 값을 함께 출력합니다.

x = 10
print(f"{x = }")        # x = 10
print(f"{x * 2 = }")    # x * 2 = 20

여러 줄 f-string과 정렬을 조합한 표 만들기 예제입니다.

items = [("사과", 1500), ("바나나", 3200)]
for name, price in items:
    print(f"{name:<6}{price:>8,}원")
# 사과       1,500원
# 바나나     3,200원

자주 하는 실수

  • f 빠뜨리기: 따옴표 앞에 f가 없으면 중괄호가 그대로 문자로 출력됩니다.
  • 따옴표 충돌: f-string 안에서 같은 종류의 따옴표를 쓰면 오류가 납니다. 바깥이 큰따옴표면 안쪽은 작은따옴표를 사용하세요(파이썬 3.12부터는 같은 따옴표도 허용).
  • 중괄호 자체를 출력: 문자 { 또는 }를 출력하려면 {{, }}처럼 두 번 씁니다.
  • 백슬래시: 파이썬 3.11 이하에서는 f-string 표현식 안에 \n 같은 백슬래시를 직접 넣을 수 없습니다. 변수에 미리 담아두세요.

f-string vs 다른 포매팅 비교

방식예시특징
f-stringf"{name}"짧고 빠름, 권장(3.6+)
str.format()"{}".format(name)구버전 호환, 약간 장황
% 포매팅"%s" % name오래된 방식, 비권장

자주 묻는 질문

Q. f-string과 format() 중 무엇을 써야 하나요?

파이썬 3.6 이상이라면 f-string을 권장합니다. 더 짧고 빠르며 읽기 쉽습니다. format()은 포맷 문자열을 변수로 따로 보관해야 하는 특수한 경우에만 유용합니다.

Q. 소수점을 반올림 없이 버리고 싶어요.

:.2f는 반올림합니다. 버림이 필요하면 math.truncint()로 먼저 처리한 뒤 포매팅하세요. 예: f"{int(pi*100)/100}".

Q. 변수 이름이 길 때 정렬이 깨져요.

고정 너비(:<10 등)를 지정하면 정렬을 맞출 수 있습니다. 다만 값이 지정 너비보다 길면 그대로 넘치므로 데이터 최대 길이를 고려해 너비를 정하세요.

파이썬 f-string 포매팅 완벽 정리 — 소수점·정렬·날짜까지 | CodeMaster 블로그 | CodeMaster