C
Python/중급/Lesson 14

f-string — 모던 문자열 포맷팅 (PEP 498)

15분·theory
이 챕터
6/8

f-string — 모던 문자열 포맷팅 (PEP 498)

🎯 이 lesson 을 읽고 나면

이 lesson 을 다 읽고 나면 아래 3가지를 자신 있게 할 수 있습니다.

  • ✅ f-string 기본 + 표현식 + 포맷 스펙
  • ✅ f'{var=}' 디버그 표현 (Python 3.8+)
  • ✅ % / .format() / f-string 중 f-string 선호 이유

학습 목표를 체크리스트로 두고 다 답할 수 있게 되면 lesson 을 닫으세요.

f-string — 코드 + 실행 결과

f"..." = 변수를 문자열에 끼워넣기. Python 3.6+ 표준. 가장 빠르고 짧음.


1. 기본

python
이름 = "홍길동"
나이 = 28

print(f"{이름}은 {나이}살")        # 홍길동은 28살
print(f"내년에 {나이 + 1}살")      # 표현식 OK

2. 옛 방식과 비교

python
# ❌ % 포맷 (Python 2 시대)
"%s은 %d살" % (이름, 나이)

# ⚠️ str.format() (Python 2.6+)
"{}은 {}살".format(이름, 나이)

# ✅ f-string (3.6+) — 짧고 빠름
f"{이름}은 {나이}살"

3. 포맷 지정

python
파이 = 3.14159265

print(f"{파이:.2f}")        # 3.14    (소수점 2자리)
print(f"{파이:.4f}")        # 3.1416
print(f"{1234567:,}")       # 1,234,567  (천 단위 쉼표)
print(f"{0.85:.0%}")        # 85%       (퍼센트)
print(f"{42:>5}")           # "   42"  (5칸 우측 정렬)
print(f"{42:0>5}")          # "00042"  (0 패딩)

4. 디버깅 (3.8+)

python
x = 10
y = 20
print(f"{x=}, {y=}, {x+y=}")     # x=10, y=20, x+y=30
# 변수명 + 값 한 번에 — 디버깅 최강

5. 여러 줄·따옴표

python
메시지 = f"""
안녕 {이름}님
나이: {나이}살
"""

# 따옴표 escape
print(f'그가 말했다: "안녕"')        # OK
print(f"이름은 \"{이름}\"")          # 이름은 "홍길동"

한 줄 요약

Python 3.6+ 의 유일한 표준. % 와 .format() 은 레거시.

🐍 실행해보기 — f-string — 직접 실행

위 개념을 실제로 코드로 실행해보세요. 값을 바꿔가며 어떻게 동작하는지 직접 확인하는 게 가장 빠른 학습.
✏️ Python 코드
📟 콘솔 출력
▶ 실행 버튼을 눌러보세요
🐍 Pyodide로 실제 Python 실행 — 첫 실행 시 로딩 3~5초 소요

🤖 AI 에게 이렇게 요청해보세요

이 lesson 의 개념을 알면 AI 에게 구체적으로 지시할 수 있습니다. 막연한 "고쳐줘" 가 아니라 어휘를 가진 요청 — 그게 토큰 절약의 출발점입니다.

  • "이 % 포맷팅과 .format() 을 f-string 으로 통일해줘"
  • "이 f-string 에 디버그 표현 (f'{x=}') 활용해줘"

왜 이게 토큰을 줄이나

개념을 모를 땐 AI 답변을 받고도 "그게 뭐예요?" 를 다시 물어야 합니다. 그 "다시 물음" 이 토큰을 잡아먹습니다. 개념 한 번 익혀두면 대화가 한 번에 끝납니다.

먼저 읽으면 좋은 개념: with 문 — 자원 자동 정리
f-string — 모던 문자열 포맷팅 (PEP 498) - Python