본문 바로가기
컴퓨터관련/Python

python에서 format 함수로 포맷팅하기

by 빛과 어둠사이 2020. 3. 5.
728x90
반응형
SMALL

오늘은 파이썬에서의 format 함수를 이용한

포맷팅 방법을

정리해보려고 합니다.



기본적으로 python에서는

포맷팅을 할 때,

% 연산자를 많이 사용합니다.

물론, %연산자가

속도가 빠르고 좋기는 합니다.

하지만 정확한 타입을 모르면

오류가 발생한다는 단점이 있기 때문에

이번에는 format 함수를 이용하여

포맷팅 하는 방법을

정리해보도록 하겠습니다.




우선, 기본적으로 사용하는

% 연산자를 이용한

포맷팅 방법부터

한번 봐보도록 하겠습니다.

print("내 이름은 %s 입이고, 나이는 %d 입니다." % ("홍길동", 20))

보통 위처럼 사용을 많이 합니다.

위처럼 코딩을 하고 실행을 하면

결과는 다음과 같이 나오게 됩니다.



이것이 파이썬에서

제일 기본적으로 사용하는

포맷팅 방법입니다.



그러면 이제부터는 format 연산자를 이용한

포맷팅 방법에 대해서

확인해보도록 하겠습니다.



1. 기본 사용법

format 함수는 기본적으로 대괄호({})를 사용합니다.

대괄호와 .format함수에 설정된 값으로

매핑이 되어서 나오게 되는 것입니다.

실제 사용 예제를 봐보도록 하겠습니다.

print("내 이름은 {} 이고, 나이는 {} 입니다." .format("홍길동",20))


위처럼 사용을 해주시면 되십니다.

그러면 format함수에서 지정한

첫번째 값인 홍길동이 

첫번째 대괄호{}에 매핑이 되어서

출력이 됩니다.

두번째도 마찬가지로 매핑이 되는 것입니다.


그래서 결과는 다음과 같이 나오게 됩니다.



위처럼 % 연산자를 이용하였을 때와

차이가 없이 나와지는 것을

볼 수 있습니다.





2. 특정 자릿수 만큼 채우기

개발을 하다보면

특정 자리수 만큼

스페이스 혹은 0 등으로

채워야 하는 경우가 있습니다.

이번에는 이런 방법을 정리해보도록 하겠습니다.


이렇게 채우기 할 때는, 

콜론(:) 과 부등호 (>,<)를 사용합니다.


총 5칸으로 출력을 하는데

왼쪽에 스페이스를 채우도록하는

샘플 예제를 봐보도록 하겠습니다.


print("숫자 체우기:{0:>5d}끝" .format(999))

위처럼 하면 됩니다.

부등호가 > 이렇게 되어 있기 때문에

왼쪽에 스페이스로 해서

총 5칸으로 출력을 하는 것입니다.

위처럼 작성하여 실행을 하면

결과는 다음과 같이 나오게 됩니다.



위처럼 왼쪽에 스페이스가 2칸 들어가고,

그 이후에 999라는 숫자가

출력되는 것을 볼 수 있습니다.



그러면 이번에는 오른쪽에

스페이스가 들어가도록 해보겠습니다.

위 소스에서 부등호의 방향만을

변경해주면 됩니다.

실제 예제는 다음과 같습니다.

print("숫자 체우기:{0:<5d}끝" .format(999))


위처럼 해주면 됩니다.

그러면 부등호 방향이 < 이기 때문에

왼쪽에 스페이스가 들어가지게 됩니다.

그래서 결과는 다음과 같이

나오게 됩니다.



위처럼 나오게 됩니다.




그러면 이제 0으로 채우는 방법을

확인해보도록 하겟습니다.

실제 사용 예제는 다음과 같습니다.

print("숫자 체우기:{0:>05d}끝" .format(999))

위처럼 해주시면 되십니다.

부등호 방향과

총 출력 자릿수 사이에

채워질 문구를 입력해주면 됩니다.


이제 위 소스를 실행했을 때,

결과는 다음과 같이 나오게 됩니다.



위처럼 왼쪽에 0으로 채워져서

총 5자리가 나와지는 것을

볼 수 있습니다.




3. 출력 순서 변경

이번에는 format 함수를 이용하여

출력되는 순서를 변경하는

예제를 확인해보도록 하겠습니다.


실제 사용 예제는

다음과 같습니다.


print("내 이름은 {1} 이고, 나이는 {0} 입니다." .format(20, "홍길동"))

위처럼 해주면 됩니다.

format 함수에서는 20, 홍길동으로 설정을 하였지만

대괄호({})에서 순서를 지정하였습니다.


그래서 실행을 하면

다음과 같이 나오게 됩니다.



위처럼 대괄호 안에 지정해준

숫자 순서대로

매핑이 되어서

출력이 되는 것을 확인할 수 있습니다.





4. format 안에서 연산하기

format 함수로 포맷팅을 하면서

연산을 할 수도 있습니다.

format 안에서 연산하는 방법은

다음과 같습니다.

print("{} X {} = {}" .format(5, 4, 5 * 4))

위처럼 해주면 됩니다.


위처럼 해서 실행을 하게 되면

결과는 다음과 같이

나오게 되는 것을

확인할 수 있습니다.



위처럼 연산이 되어서 나와지는 것을

확인할 수 있었습니다.






% 연산자와

format 연사자의 장단점을 비교해보도록 하겠습니다.



%연산자의 경우,

속도가 빠릅니다.

하지만, 정확한 타입을 모른다면

오류가 발생을 합니다.


format 연산자의 경우,

정확한 포맷을 몰라도 출력이 됩니다.

또한, 가독성이 좋습니다.

하지만, 타입을 확인하여 변경하는 작업이

파이썬 자체적으로 들어가기 때문에

속도는 조금 더 느려집니다.



위와 같은 장단점이 있습니다.

그렇기 때문에 무엇이 더욱 좋다라고 얘기할 수는 없습니다.

하지만 저는 개인적으로는 format을 이용하는 것이

나쁘지 않다고 생각합니다.


속도가 약간은 느리더라도

가독성도 좋고,

데이터 타입이 변경이 되거나 조금의 오류가 발생이 되었을 때도

문제 없이 처리가 될 수 있기 때문에

저는 조금 더 낫다고 생각을 합니다.



하지만, 이거는 제 개인적인 생각이고

사용하시는 분이 편하신 것을

사용해 주시면 되실 것 같습니다.




이상으로 python에서의 format을 이용한

포맷팅 하는 방법이였습니다~



728x90
반응형
LIST

'컴퓨터관련 > Python' 카테고리의 다른 글

python에서의 인덱싱  (0) 2020.04.08
Python에서 Set 사용하기  (0) 2020.03.30
python에서 파일 및 폴더 삭제하기  (0) 2020.03.03
python 멤버십 연산자  (0) 2020.02.20
[python]replace로 문자(문자열) 바꾸기  (0) 2020.01.31