파이썬의 가장 유용한 기능 중 하나는 바로 문자열 형식 지정 연산자인 %입니다. 이 연산자는 문자열에만 적용되며, C 언어의 printf() 계열 함수가 제공하던 서식화 기능을 그대로 구현해 줍니다. 간단한 예제를 통해 살펴보겠습니다.
기본 사용 예제
#!/usr/bin/python
print "My name is %s and weight is %d kg!" % ('Zara', 21)
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
My name is Zara and weight is 21 kg!
문자열 안의 %s는 문자열 값을, %d는 정수 값을 받아 해당 위치에 치환합니다. 참고로 파이썬 3에서는 print를 함수 형태로 호출해야 하므로 print("My name is %s and weight is %d kg!" % ('Zara', 21))처럼 작성합니다.
%와 함께 사용하는 변환 기호
% 연산자와 함께 사용할 수 있는 전체 변환 기호 목록은 다음과 같습니다.
| 번호 | 형식 기호 및 변환 |
|---|---|
| 1 | %c 문자(character) |
| 2 | %s 서식 지정 전에 str()을 통해 문자열로 변환 |
| 3 | %i 부호 있는 10진 정수 |
| 4 | %d 부호 있는 10진 정수 |
| 5 | %u 부호 없는 10진 정수 |
| 6 | %o 8진수 정수 |
| 7 | %x 16진수 정수(소문자) |
| 8 | %X 16진수 정수(대문자) |
| 9 | %e 지수 표기법(소문자 'e' 사용) |
| 10 | %E 지수 표기법(대문자 'E' 사용) |
| 11 | %f 부동 소수점 실수 |
| 12 | %g %f와 %e 중 더 짧은 표현 |
| 13 | %G %f와 %E 중 더 짧은 표현 |
부가 기호 및 추가 기능
그 외에 지원되는 기호와 기능은 아래 표와 같습니다.
| 번호 | 기호 및 기능 |
|---|---|
| 1 | * 인자(argument)가 폭 또는 정밀도를 지정 |
| 2 | - 왼쪽 정렬 |
| 3 | + 부호 표시 |
| 4 | <sp>(공백) 양수 앞에 공백 한 칸 남김 |
| 5 | # 'x' 또는 'X' 사용 여부에 따라 8진수 접두사 '0' 또는 16진수 접두사 '0x', '0X' 추가 |
| 6 | 0 공백 대신 왼쪽을 0으로 채움 |
| 7 | % '%%'는 리터럴 '%' 문자 하나를 출력 |
| 8 | (var) 매핑 변수(딕셔너리 인자) |
| 9 | m.n. m은 최소 전체 폭, n은 소수점 이하 표시 자릿수(해당하는 경우) |
참고: 최신 파이썬의 문자열 포매팅
% 연산자는 여전히 사용할 수 있지만, 파이썬 3에서는 가독성이 뛰어난 f-string(예: f"My name is {name}")이나 str.format() 메서드가 공식적으로 권장됩니다. 다만 레거시 코드를 유지보수하거나 printf 스타일에 익숙한 개발자에게는 % 포매팅이 여전히 실용적인 선택지가 됩니다.