티스토리 뷰

print() 문에서 활용할 수 있는 다양한 출력 포맷에 대해 공부해보겠습니다.

 

우리가 문자열 포맷을 공부를 할 때 다음과 같이 format() 을 이용할 수 있었는데요.

print("{0}".format(500)) # {0} 위치에 500 값 출력

format() 내의 값들이 각각 중괄호 {0}, {1}, ... 위치에 들어가게 되는데 중괄호 부분을 수정하면 보다 다양한 형태로 출력이 가능합니다. 

 

위 코드에서 {0} 부분을 {0: >10} 으로 바꾸게 되면 500 이란 값을 출력하는데 총 10칸의 공간을 확보한 상태에서 오른쪽으로 정렬을 하고 나머지 공간은 빈 칸으로 채우게 됩니다. 이 때 콜론(:) 뒷 부분에 오는 빈 칸, >, 10 의 역할이 각각 빈 칸으로 채우기( ), 오른쪽으로 정렬하기(>), 지정한 만큼의 공간을 확보하기(10) 가 되는 것이죠.

print("{0: >10}".format(500)) # 빈 자리는 비워두기, 우측 정렬, 10 칸의 공간 확보
              5 0 0

 

일반적으로 양수는 + 기호 없이 표시하고 음수만 - 기호로 표시하는데, 주식에서는 양수일 때도 + 를 포함하여 표시하곤 합니다. 파이썬에서도 이렇게 할 수 있는데요. 앞 예제의 숫자 부분 앞에 + 만 추가해주면 됩니다.

print("{0: >+10}".format(500)) # 빈 자리는 비워두기, 우측 정렬, + 기호, 10 칸의 공간 확보
print("{0: >+10}".format(-500))
            + 5 0 0
            - 5 0 0

 

확보된 전체 공간 중 빈 자리를 다른 값으로 채워볼까요?

print("{0:_<10}".format(500)) # 빈 자리는 _ 로, 좌측 정렬, 10 칸의 공간 확보
5 0 0 _ _ _ _ _ _ _

 

지금까지 작성한 전체 코드 및 실행 결과는 이렇습니다.

print("{0}".format(500)) # {0} 위치에 500 값 출력
print("{0: >10}".format(500)) # 빈 자리는 비워두기, 우측 정렬, 10 칸의 공간 확보
print("{0: >+10}".format(500)) # 빈 자리는 비워두기, 우측 정렬, + 기호, 10 칸의 공간 확보
print("{0: >+10}".format(-500))
print("{0:_<10}".format(500)) # 빈 자리는 _ 로, 좌측 정렬, 10 칸의 공간 확보
500
       500
      +500
      -500
500_______

 

이번에는 큰 수를 표시할 때 꼭 필요한 콤마(,)를 넣어보겠습니다. 보통 화폐 단위를 나타낼 때 1,000 단위로 콤마를 찍는데 파이썬에서도 간편하게 할 수 있습니다.

print("{0:,}".format(100000000000)) # 3자리 마다 콤마 찍어주기
print("{0:+,}".format(100000000000)) # + 기호, 3자리 마다 콤마 찍어주기
print("{0:+,}".format(-100000000000))

실행 결과는 이렇습니다.

100,000,000,000
+100,000,000,000
-100,000,000,000

조금 더 복잡한 예제를 만들자면 총 30칸의 공간을 확보하고 좌측 정렬로 + 기호를 포함한 큰 수를 찍는데 빈 자리는 ^ 로 채워보겠습니다.

# 빈 자리는 ^ 로, 좌측 정렬, + 기호, 30 칸의 공간 확보, 3자리 마다 콤마 찍어주기
print("{0:^<+30,}".format(100000000000))

실행 결과는 이렇게 나오는데요. 사실 이렇게까지 복잡하게 쓸 일이 많을 것 같지는 않습니다.

+100,000,000,000^^^^^^^^^^^^^^

 

 

마지막으로 소수점 출력을 해보겠습니다. 실수값을 출력할 때 round() 함수를 이용하면 반올림이 가능했었는데, 출력 포맷을 이용할 수도 있습니다. 예를 들어서 5 를 3 으로 나누면 1.66666666... 이 나올텐데 이를 실수형태로 먼저 출력해보겠습니다.

print("{0:f}".format(5/3)) # 실수 값 출력

 

1.666667

 

 

이제 이 값을 우리가 원하는 만큼의 소수점 자리까지만 출력해보겠습니다. f 가 실수형 자료(float) 를 의미하는데 점(.) 과 숫자(n)를 함께 적으면 소수점 n번째 자리까지 출력을 해줍니다. 셋째자리에서 반올림하여 둘째자리까지 출력하려면 .2f 라고 적으면 됩니다.

print("{0:.2f}".format(5/3)) # 소수점 둘째자리까지 출력
1.67

 

지금까지 공부한 출력 포맷은 다음과 같은 순서로 { } 내에 사용자가 필요한 부분만 명시하는 방식으로 포맷을 정의할 수 있습니다. 

{인덱스:[[빈자리채우기]정렬][기호][확보공간][콤마][.자릿수][타입]}

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함