프로그램의 출력 결과를 표현하는 방법은 여러 가지가 있습니다. 데이터를 사람이 읽기 쉬운 형태로 화면에 출력할 수도 있고, 나중에 재사용하기 위해 파일로 저장할 수도 있습니다. 단순히 공백으로 구분된 값을 나열하는 것만으로는 부족하고, 출력 형식을 더 세밀하게 제어하고 싶은 경우가 자주 생깁니다. 파이썬은 이를 위해 다양한 출력 포매팅 방법을 제공합니다.
파이썬 출력 포매팅의 대표적인 방법
- f-string(포맷 문자열 리터럴) - 문자열의 시작 따옴표나 삼중 따옴표 앞에
f또는F를 붙여 사용합니다. - str.format() 메서드 - 문자열 메서드를 활용해 더욱 정교한 출력을 구성할 수 있습니다.
- 문자열 슬라이싱과 연결 연산 - 문자열을 직접 조합해 원하는 어떤 레이아웃이든 만들 수 있으며, 특정 열 너비에 맞춰 패딩해 주는 유용한 문자열 메서드들도 함께 제공됩니다.
1. 문자열 모듈로 연산자(%)를 이용한 포매팅
% 연산자는 C 언어의 printf() 스타일 형식 문자열처럼 동작합니다. 왼쪽에 형식 문자열을, 오른쪽에 치환할 값들을 두면 원하는 형태로 출력할 수 있습니다.
예제
# 문자열 모듈로 연산자(%)를 이용한 출력
# 정수와 실수 값 출력
print("Vishesh : % 2d, Portal : % 5.2f" %(1, 5.333))
# 정수 값 출력
print("Total students : % 3d, Boys : % 2d" %(240, 120))
# 8진수 값 출력
print("% 7.3o"% (25))
# 지수 표기 값 출력
print("% 10.3E"% (356.08977))
실행 결과
Vishesh : 1, Portal : 5.33
Total students : 240, Boys : 120
031
3.561E+02
2. format() 메서드를 이용한 포매팅
format() 메서드는 파이썬 2.6부터 도입되었습니다. {} 중괄호로 변수가 치환될 위치를 표시하고, 필요하다면 세부 포맷 지시자를 함께 지정할 수 있습니다. 다만 포매팅할 값을 직접 전달해야 하므로 % 연산자보다는 다소 번거로울 수 있습니다.
예제
# 딕셔너리와 함께 format() 사용하기
tab = {'Vishesh': 4127, 'for': 4098, 'python': 8637678}
# 딕셔너리 키를 인덱스로 참조
print('Vishesh: {0[Vishesh]:d}; For: {0[for]:d}; '
'python: {0[python]:d}'.format(tab))
data = dict(fun="VisheshforPython", adj="Python")
# ** 언패킹으로 딕셔너리 전달
print("I love {fun} computer {adj}".format(**data))
실행 결과
Vishesh: 4127; For: 4098; python: 8637678 I love VisheshforPython computer Python
3. 문자열 메서드(center, ljust, rjust)를 이용한 포매팅
이 방식은 문자열 슬라이싱과 연결 연산을 기반으로 출력 형식을 지정합니다. center(), ljust(), rjust() 같은 문자열 메서드를 사용하면 원하는 너비와 채움 문자(fill character)로 손쉽게 정렬할 수 있습니다.
예제
# 문자열 메서드로 출력 형식 지정하기
cstr = "I love python"
# 채움 문자($)를 사용한 가운데 정렬 출력
print("Center aligned string with fillchr: ")
print(cstr.center(40, '$'))
# "-"로 채운 왼쪽 정렬 출력
print("The left aligned string is : ")
print(cstr.ljust(40, '-'))
# "-"로 채운 오른쪽 정렬 출력
print("The right aligned string is : ")
print(cstr.rjust(40, '-'))
실행 결과
Center aligned string with fillchr: $$$$$$$$$$$$$I love python$$$$$$$$$$$$$$ The left aligned string is : I love python--------------------------- The right aligned string is : ---------------------------I love python
4. f-string을 이용한 포매팅 (파이썬 3.6 이상)
f-string은 파이썬 3.6부터 도입된 가장 현대적이고 간결한 포매팅 방식입니다. 문자열 앞에 f를 붙이고 중괄호 안에 변수나 표현식을 그대로 작성하면 되므로 가독성이 매우 뛰어납니다.
예제
# f-string을 이용한 출력
name = "Kim"
score = 95.5678
print(f"{name}의 점수는 {score:.2f}점입니다.")
# 소수 둘째 자리까지 반올림되어 출력됩니다.
실행 결과
Kim의 점수는 95.57점입니다.
마무리
간단한 출력에는 f-string이 가장 편리하며, printf 스타일에 익숙하거나 레거시 코드를 다룰 때는 % 연산자를, 복잡한 템플릿 구성에는 format() 메서드를 활용하는 것이 좋습니다. 상황에 맞는 방법을 선택해 깔끔하고 읽기 쉬운 출력을 만들어 보세요.