Python에는 동적 값으로 문자열을 만드는 여러 방법이 있습니다. 현대적이고 권장되는 방식은 Python 3.6에서 도입된 f-string(포맷된 문자열 리터럴)입니다.
f-string — 현대적인 기본 방식
python
name = "Ann"
age = 30
msg = f"{name} is {age} years old"
f 접두사를 사용하면 {} 안에 표현식을 직접 삽입할 수 있습니다 — 간결하고, 읽기 쉽고, 빠릅니다. 현대 Python에서 선호되는 방법입니다.
f"{3.14159:.2f}" # "3.14" — 소수점 2자리
f"{1000000:,}" # "1,000,000" — 천 단위 구분 기호
f"{0.85:.1%}" # "85.0%" — 백분율
f"{42:05d}" # "00042" — 너비 5에 맞춰 0으로 채움
f"{'hi':>10}" # " hi" — 너비 10에서 우측 정렬
f"{'hi':^10}" # " hi " — 가운데 정렬
값 뒤의 :명세는 정밀도, 채움, 정렬, 숫자 포맷을 제어합니다 — 깔끔한 출력에 강력합니다.
f"{name=}" # "name='Ann'" — 표현식과 값을 모두 출력
=는 빠른 디버깅에 유용합니다 — 변수 이름과 그 값을 함께 보여줍니다.
"{} is {}".format(name, age) # str.format() — f-string 이전의 표준
"%s is %d" % (name, age) # %-포매팅 — 오래된 C 스타일 (새 코드에서는 피할 것)
name + " is " + str(age) # 연결 — 장황하고 오류가 발생하기 쉬움
.format()은 오래된 코드에서 여전히 흔합니다. %-포매팅은 레거시입니다. 단순 연결은 권장되지 않습니다(장황하고 수동 str() 변환이 필요함).
문자열 포매팅은 끊임없이 필요합니다 — 메시지, 로그, 출력, 쿼리를 만들 때요.
f-string은 현대적이고 읽기 쉬우며 효율적인 표준이고, 그 포맷 명세자(정밀도, 채움, 정렬, 구분 기호)를 알면 장황한 코드 없이 깔끔하고 전문적인 출력을 만들 수 있습니다.
오래된 .format()과 % 스타일을 알아보는 것은 기존 코드베이스를 읽을 때 도움이 됩니다.
f-string을 잘 사용하는 것은 명확하고 관용적인 Python을 작성하는 작지만 광범위한 부분입니다.