https://docs.python.org/3/tutorial/inputoutput.html#fancier-output-formatting
정교한 출력 포맷팅

f-string

  • 문자열 앞에 f / F, 중괄호에 표현식을 넣어 값/계산 결과 삽입.
f"Result of {year} {event}"

str.format()

  • {} 자리표시자에 순서/이름별 값을 전달하고 포맷 지정 가능 (자리 수/부호/소수점/백분율 등 제어)
"{:-9} YES votes {:2.2%}.format(yes_votes,pct)"

직접 문자열 조립

str() vs repr()

  • str() 사람이 읽기 쉬운 표현 (요약/가독성 중심)
  • repr() 은 디버깅,재생성에 유용한 “정확한”표현 (eval(repr(obj)) == obj 가 성립하도록)
    • 디버깅/로깅: 값의 정확한 내부 표현이 필요할 때. 예: 개행·탭·따옴표·바이너리 데이터 (‘hi\n’).
    • REPL/인터랙티브 환경: 파이썬 쉘은 표현식 결과를 repr로 보여줘서 값 구조를 그대로 확인 가능.
    • 재생성/직렬화 친화 표현: 가능하면 eval(repr(obj)) == obj가 성립하도록 만들어 복원성을 높임(숫자, 튜플 등 기본 타입).
    • 컨테이너 출력: 리스트/딕셔너리 등은 요소의 repr을 사용하므로 내부 요소를 정확히 드러냄.
    • 커스텀 클래스 구현: __repr__을 디버깅 친화적으로 작성해 타입·핵심 필드가 보이게(MyPoint(x=1, y=2));
    • f-string에서 !r:
      • “value={obj!r}“처럼 로깅 시 가독성과 정확도를 함께 확보.

string.Template

  • $name 같은 플레이스 홀더를 딕셔너리 값으로 치환하는 단순 템플릿 방식
import string
tpl = string.Template("$who scored $score")
tpl.substitute({"who":"Alice","score":98})

← python 3.14으로