본문 바로가기
Programming/Python

파이썬 % 포매팅에 대하여

by whitele 2021. 8. 14.
반응형

출력

 출력 시에 자료형에 따라 혹은 표현 방법을 지정함에 따라 좀 더 보기 좋게 표현하기 위해 혹은 더 정확하게 표현하기 위해 포매팅을 사용합니다. 가장 정교하고 완벽하게 포맷팅을 원한다면 format 메서드를 이용하면 됩니다. 하지만 이 내용에서는 format에 대한 자세한 내용은 다루지 않습니다. 여기서는 % 지시자를 이용한 포맷팅 내용을 다룹니다.

 

% 포매팅

% 을 이용한 방법은 C/C++ printf 사용방법과 유사합니다. 먼저 매우 간단한 예입니다.

a=100
print('number : %d ' %a) #number : 100 출력

 위와 같이 변수 a를 % d에 출력하는 내용입니다. 여러 개를 출력할 경우는 다음과 같습니다.

a=10,b=2,c=12
print('%d+%d=%d'%(a,b,c)) #10+2=12 출력

포매팅할 때 튜플 형식이며 반드시 여러 개를 지정할 땐 괄호를 포함해야 합니다. 튜플 형식이기 때문에 다음과 같은 경우에도 동작합니다.

a=(10,2,12)
print(%d+%d=%d'%a)

여러개 출력시 튜플형

 

% 지시자 종류

%d %i 10진수  
%x %X 16진수 ex)af10ff AF10FF
%o 8진수  
%u 양의 정수  
%f %F 고정 소수점 표현 ex)3.125
%e %E 지수를 출력하는 부동소수점 ex)1.050000e+00 1.050000E+00
%g %G 짧은 표현을 하는 지수 출력 부동소수점 ex)4e+10 4E+10
%s 문자열  
%r 코드 그대로 출력(이스케이프 x)  

지시자에 따라 자료형 포맷을 지시합니다. 다음 예를 들어 포맷 지시자의 사용방법 예시입니다.

pi=3.14159226
print('pi(f):%f'%pi)
print('pi(e):%e'%pi)

고정소수점 부동소수점

 

포매팅 내용을 변수로 대입한 뒤 그 변수를 출력해도 정상적으로 작동합니다.

s='My name is %s , age : %d'%('Karl',16)
print(s)

변수 대입 출력

 

 

포매팅 필드

 

출력하려는 문자열의 포매팅 지시자 % 뒤에 적절한 필드 공간에 값을 입력하면 출력 길이, 좌우 정렬을 설정할 수 있습니다. %[-][길이][. 자릿수][타입] 형식입니다.

 -는 왼쪽 정렬을 할 때 사용합니다. 그다음 길이는 표현 길이를 지정하는 필드입니다. p는 정밀도, 자릿수를 지정하기 위한 필드입니다. 기본적으로 오른쪽 정렬이 기본이지만 왼쪽으로 정렬을 하기 위해서 지정할 수 있습니다.

 옵션처럼 선택 가능하며 다음 포맷 모두 사용 가능합니다.

%d   %5d  %4.5d  %.4d  %-4.5d
print('Num"%-10.2f'%167.1)

정밀 포매팅 예시

 소수점 길이가 표현하려는 것보다 작을 때 의문적이 생길 수 있다.

소수점 반올림

이 경우는 반올림을 하거나 버림이 된다.

 

정리

 %를 이용한 포맷팅에 대해 간단히 정리했습니다. 고급 포매팅은 format을 이용하여 출력하는 것이 훨씬 좋지만 간단하고 직관적인 % 역시 많이 쓰기에 알아둘 필요는 있습니다. format이 아니더라도 충분히 범용성 있게 사용할 수 있습니다.

728x90
반응형

댓글