Home [Python] Formatting
Post
Cancel

[Python] Formatting

Python에서 지원하는 다양한 형태의 formatting에 대해 알아보려고 합니다.


현재 Python3에서 지원하는 formatting 방법에는 % string, formt함수 사용, fstring이 있습니다.

1. % string을 사용해 formatting 하는 방법

% string은 python 초기에 사용되던 방법으로 C언어에서 사용하는 방법과 유사하기 때문에 파이썬 답지 않게 굉장히 불편한 점이 있습니다. 예를들면 %d, %s과 같은 출력 포맷을 정확히 작성해 주어야 하기 때문에 dynamic typing을 지원해주는 파이썬답지 않은 formatting입니다. 따라서 간단하게만 살펴보고 지나가겠습니다.

  • 기본적인 형식

    1
    2
    3
    4
    5
    6
    
    a = 3; b = "three"
    
    print("%d, %s" %(a, b))
        >>  3, three
    print("%f." %5.243)
        >>  5.243000.
    
  • 소수점의 자리를 조절 하고 싶을 때

    1
    2
    
    print("%.5f." %5.243)
        >>  5.24300.
    
  • 전체 자릿수를 조절 하고 싶을 때

    1
    2
    
    print("%10.5f." %5.243)
        >>     5.24300.
    

2. format 함수를 사용해 formatting 하는 방법

% string 이후 좀 더 편리하게 파이썬답게 사용하기 위해 나온 formatting 방법이 format 함수를 사용하는 것입니다. format 함수에 대해 알아보겠습니다.

  • 기본적인 사용 방법

    1
    2
    
    print("{0}".format(3))
        >>  3
    
    1
    2
    3
    4
    
    a = 3; b = "three"
    
    print("{0}, {1}".format(a, b))
        >>  3, three
    

    🔎 { } 괄호 안에 꼭 숫자를 명시를 안해도 실행이 됩니다. 그러나 명시를 해주지 않는 경우 format 함수에 들어오는 인자가 순서대로 들어가니 format 함수에 인자를 작성하실 때 주의해서 순서대로 입력해주셔야 합니다.

    1
    2
    
    print("{}, {}".format(a, b))
        >>  3, three
    
  • 소수점을 다룰 때

    1
    2
    3
    4
    
    print("{0:.5f}.".format(5.243))
        >>  5.24300.
    print("{:.5f}.".format(5.243))
        >>  5.24300.
    
  • 텍스트 정렬과 너비 지정할 때

    ✅ 졍렬을 진행하는 옵션

    옵션의미
    ”<”왼쪽 정렬
    ”>”오른쪽 정렬
    ”^”가운데 정렬

    ⚠️ 출력하려는 출력값의 길이보다 큰 field가 정의되어 있지 않으면 해당 옵션을 사용해도 결과값은 변하지 않습니다. field를 지정하는 방법은 option뒤에 혹은 콜른(:) 뒤에 field의 길이를 입력해주시면 됩니다.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    print("{:10.5f}.".format(5.243))
        >>     5.24300.
    print("{:>10.5f}.".format(5.243))
        >>     5.24300.
    print("{:<10.5f}.".format(5.243))
        >>  5.24300   .
    print("{:^10.5f}.".format(5.243))
        >>   5.24300  .
    print("{:+^10.5f}.".format(5.243))
        >>  +5.24300++.
    

3. f-string를 사용해 formatting 하는 방법

f-string은 파이썬 버전 3.6에 추가되어 현재 가장 많이 사용되고 있는 formatting 방법입니다. 위에 두 개보다 편리하고 가독성 또한 올라가는 장점 때문에 가장 많이 사용되지 않나 싶습니다. f-string 사용 방법은 format함수 사용법과 크게 다르지 않습니다. format 함수에서 함수에 넣던 real value를 f-string에선 { } 안에 직접 넣어주시면 됩니다. 따라서 예시만 살펴보고 넘어가겠습니다.

1
2
3
4
a = 3; b = "three"

print(f"{a}, {b}")
    >>  3, three
1
2
3
4
print(f"{5.243:.5f}.")
    >>  5.24300.
print(f"{5.243:10.5f}.")
    >>     5.24300.
1
2
3
4
5
6
7
8
print(f"{5.243:>10.5f}.")
    >>     5.24300.
print(f"{5.243:<10.5f}.")
    >>  5.24300   .
print(f"{5.243:^10.5f}.")
    >>   5.24300  .
print(f"{5.243:+^10.5f}.")
    >>  +5.24300++.

※ Reference

This post is licensed under CC BY 4.0 by the author.

[Python] collections - namedtuple

[Python] Function - 함수에 parameter를 전달하는 방식