파이썬 문자열 포매팅, %와 format과 f-string 중 어떤 걸 써야 할까

2026-09-07 · 교육 · 읽는데 6분

파이썬 문자열 포매팅, %와 format과 f-string 중 어떤 걸 써야 할까

파이썬으로 코딩을 하다 보면 문자열 안에 변숫값을 넣어야 하는 상황이 자주 생깁니다. 이때 사용하는 것이 문자열 포매팅인데, 파이썬은 크게 세 가지 방식을 제공합니다. % 기호를 쓰는 서식 지정자, format 메서드, 그리고 파이썬 3.6부터 도입된 f-string이 그것입니다. 각 방식은 문법이 조금씩 다르지만 결과적으로 동일한 문자열을 만들 수 있으며, 상황에 따라 더 편리한 방법을 선택하면 됩니다.

파이썬 문자열 포매팅, 어떤 방법들이 있을까

문자열 포매팅은 문자열 안에 다른 값을 넣기 위한 기능입니다. 예를 들어 이름과 점수를 출력하는 문장을 만든다고 할 때, 이름과 점수가 바뀔 때마다 문자열 전체를 새로 쓰는 대신 포매팅을 사용하면 변수 값만 바꿔서 같은 형식의 문자열을 만들 수 있습니다. 파이썬에서 이 작업을 처리하는 방법은 세 가지로 나뉩니다.

첫 번째는 % 기호를 사용하는 서식 지정자 방식입니다. %s는 문자열, %d는 10진 정수, %f는 실수를 의미합니다. 이 방식은 파이썬 초기 버전부터 사용된 전통적인 방법이라 오래된 코드에서 자주 볼 수 있습니다.

두 번째는 format 메서드를 활용하는 방식입니다. 문자열 안에 중괄호 {}를 넣고, 문자열 뒤에 .format(값)을 붙여 값을 전달합니다. 중괄호 안에 인덱스나 이름을 지정할 수 있어서 값의 순서를 바꾸거나 같은 값을 여러 번 넣을 때 유용합니다.

마지막으로 파이썬 3.6부터는 f-string을 사용할 수 있습니다. 문자열 앞에 f를 붙이고 중괄호 안에 변수 이름을 직접 쓰는 방식이라 코드가 매우 간결해집니다. 최근에는 f-string을 가장 많이 사용하는 추세입니다.

파이썬 문자열 포매팅, 어떤 방법들이 있을까
파이썬 문자열 포매팅, 어떤 방법들이 있을까
포매팅 방식 문법 예시 특징
서식 지정자 '%s %d' % ('Python', 3) 오래된 코드에서 사용
format 메서드 '{} {}'.format('Python', 3) 인덱스·이름 지정 가능
f-string f'{name} {version}' 파이썬 3.6+, 코드가 간결

%s, %d, %f 서식 지정자로 문자열 만들기

서식 지정자는 문자열 안에 % 기호와 자료형 문자를 조합해 넣는 방식입니다. 문자열을 넣을 자리에는 %s를, 정수는 %d, 실수는 %f를 사용합니다. 실제 값은 문자열 바깥에서 % 기호 뒤에 붙이는데, 값이 두 개 이상이면 괄호로 묶고 쉼표로 구분합니다.

print('I am %s.' % 'james')

print('오늘 온도는 %d도입니다.' % 24)

print('평균 점수는 %f점입니다.' % 2.3)

실수는 기본적으로 소수점 이하 6자리까지 표시되므로 2.3을 넣으면 2.300000으로 출력됩니다. 소수점 자릿수를 조절하려면 %.2f처럼 점 뒤에 자릿수를 지정합니다. 정렬도 가능한데, %10s는 전체 길이를 10으로 맞추고 오른쪽 정렬을 하며, %-10s는 왼쪽 정렬을 합니다. 자릿수에 0을 채우려면 %03d처럼 숫자 앞에 0을 붙이면 됩니다.

print('%10s' % 'python')

print('%-10s' % 'python')

print('%03d' % 35)

서식 지정자를 여러 개 사용할 때는 값의 개수를 반드시 맞춰야 합니다. 값이 두 개 이상일 때 괄호를 생략하면 오류가 발생하므로 주의해야 합니다.

format 메서드와 f-string, 더 간결하게 포매팅하기

format 메서드는 중괄호 안에 인덱스를 지정하고 .format()에 값을 순서대로 넣는 방식입니다. 인덱스 순서를 바꾸면 문자열에 들어가는 값의 순서도 바뀝니다. 중괄호에 이름을 지정할 수도 있는데, 이때는 .format()에 이름=값 형태로 전달합니다.

print('Hello, {0} {2} {1}'.format('Python', 'Script', 3.6))

print('{language} {version}'.format(language='Python', version=3.6))

파이썬 3.6부터는 f-string을 사용할 수 있습니다. 문자열 앞에 f를 붙이고 중괄호 안에 변수 이름을 직접 적으면 됩니다. 변숫값이 문자열에 바로 반영되므로 코드가 짧아지고 읽기도 편합니다.

name = 'Python'
version = 3.6
print(f'{name} {version}')

f-string도 정렬과 채우기가 가능합니다. 중괄호 안에서 변수 이름 뒤에 콜론을 붙이고 정렬 방향과 길이를 지정합니다. <는 왼쪽 정렬, >는 오른쪽 정렬을 의미합니다. 숫자에 0을 채우려면 :03d처럼 사용합니다.

정렬 방식 서식 지정자 format 메서드 f-string
오른쪽 정렬 %10s '{:>10}'.format('python') f'{'python':>10}'
왼쪽 정렬 %-10s '{:<10}'.format('python') f'{'python':<10}'
0 채우기 %03d '{:03d}'.format(35) f'{35:03d}'

숫자에 천 단위 콤마 넣기

금액을 출력할 때는 천 단위로 콤마를 넣어야 가독성이 좋아집니다. 파이썬에서는 format 내장 함수를 사용해 간단하게 처리할 수 있습니다. 콤마가 포함된 숫자를 오른쪽 정렬하고 싶다면 format(숫자, ',') 뒤에 정렬 옵션을 추가하면 됩니다.

print(format(1234567, ','))

print(format(1234567, '>15,'))

이처럼 포매팅 방식이 여러 가지라서 처음에는 어떤 것을 써야 할지 헷갈릴 수 있습니다. 하지만 각 방식의 기본 문법만 익혀두면 코드를 읽거나 작성할 때 큰 어려움이 없습니다. 오래된 코드를 유지보수할 때는 서식 지정자를 이해해야 하고, 새로 코드를 작성할 때는 f-string이 가장 편리합니다. format 메서드는 인덱스나 이름을 활용해야 하는 복잡한 문자열을 만들 때 유용합니다.