[Python] f-string 포맷팅2 (2,8,16 진수, 1000단위 쉼표, 정렬, 문자채우기)

반응형

Pyhon Logo

 

* 전체 코드

### 2,8,16 진수
k=15
print(f"k 2진수: {k:b}, k 8진수: {k:o}") # 출력: k 2진수: 1111, k 8진수: 17
print(f"k 16진수 - 소문자:{k:x}, 대문자:{k:X}") # 출력: k 16진수 - 소문자:f, 대문자:F

### 1000 단위 쉼표(,)
m=1000000000
print(f"m: {m:,} 원") # 출력: m: 1,000,000,000 원

### 출력 길이 조절
print(f"a:{a:10}") # 출력: k:        15.

### 왼쪽, 오른쪽, 가운데 정렬
print(f"a center: {a:^10}.") # 출력: k center:     15    .
print(f"a left: {a:<10}.") # 출력: k left: 15        .
print(f"a right: {a:>10}.") # 출력: k right:         15.

### 특정 문자로 채우기
print(f"a:{a:-^10}.") # 출력: k:----15----.

Contents

     

    1. 배경

    python에서 f-string 방법을 통해 쉽게 변수를 문자열에 담아 출력할 수 있습니다. 이때, 출력하고자 하는 변수를 다양한 방식으로 변환하여 출력할 수 있는데, 이를 포맷팅이라고 합니다. 저번 포스팅에 이어 다양한 포맷팅 방법을 알아보겠습니다.

    * f-string 기초: [Python] f-string 포맷팅 (소수점, 퍼센트, 부동소수점)

     

    [Python] f-string 포맷팅 (소수점, 퍼센트, 부동소수점)

    * 전체 코드 ## 기초 예시 a=10 print(f"a: {a}") # Output: 10 print(f"a: {a:.2f}") # Output: 10.00 ## 자주 사용하는 포맷팅 ### 소수점 자리수 import math pi=math.pi print(pi) # Output: 3.1415926535897..

    bio-info.tistory.com

     

    2. 개념

    print(f"변수: {변수:타입 지시자}")

    f-string은 큰따옴표(") 앞에 f를 쓰고, 문자열 내부에 중괄호를 통해 변수를 문자열에 담아 출력하는 방법입니다. 위처럼 {변수: 타입 지시자}를 통해 변수를 원하는 타입으로 변환하여 출력할 수 있습니다.

     

    3. 포맷팅 종류 5가지

    1) 2, 8, 16 진수로 변환하여 출력

    k=15
    print(f"k 2진수: {k:b}, k 8진수: {k:o}")
    print(f"k 16진수 - 소문자:{k:x}, 대문자:{k:X}")

    k에 15를 할당하고, 2 / 8 / 16 진수로 변환하여 출력하는 예제입니다. 2 진수로 변환하려면 타입 지시자를 b(binary)로 해야 하고, 8 진수는 o(octal), 16 진수는 x/X(hexadecimal)로 합니다. 이때, 16진수는 10, 11, 12부터는 알파벳 A, B, C로 표현됩니다. 이 알파벳을 소문자로 출력하려면 소문자 x를 타입 지시자로 해야 하고, 대문자로 출력하려면 대문자 X를 타입 지시자로 해야 합니다. 아래 예시를 보면 15를 16진수로 했을 때, 소문자 x를 쓰면 f가 출력되고 대문자 X를 쓰면 F가 출력되는 것을 볼 수 있습니다.

    타입 지시자 기능
    b 2 진수로 출력
    o 8 진수로 출력
    x 16 진수로 출력(알파벳이 포함된 경우 소문자로)
    X 16 진수로 출력(알파벳이 포함된 경우 대문자로)

     

    * 출력

    2 / 8 / 16 진수 출력

     

    2) 1000 단위 쉼표 찍어 출력

    m=1000000000
    print(f"m: {m:,} 원")

    큰 수를 출력하는 경우, 3자리를 기준으로 쉼표를 찍으면 보기 쉽습니다. 이럴 때, 타입 지시자로 쉼표(,)만 쓰면 알아서 3자리마다 쉼표를 찍어줍니다. 예시 코드에서는 큰 금액인 10억 인 경우 쉼표를 찍어 보기 좋게 출력해보았습니다.

     

    * 출력

     

    3) 출력 길이 조절

    print(f"k:{k:10}")

    출력하고자 하는 변수를 특정 길이만큼을 유지하며 출력하고자 할 때, 타입 지시자로 숫자를 써줍니다. 그러면 알아서 해당 길이만큼의 문자열 안에 해당 변수를 넣어 출력해 줍니다. 변수가 여러 자리 숫자일 때, 보기 좋게 같은 길이로 쭉 출력하는 경우 이런 포맷팅 방법을 많이 씁니다. 위 예시에서는 1)에서 정의한 k(15)를 10자리로 출력하는 예시입니다. 15는 2자리 이기 때문에, 남는 8자리는 공백을 채워서 출력해줍니다.

     

    * 출력

     

    4) 왼쪽, 오른쪽, 가운데 정렬

    print(f"k center: {k:^10}.")
    print(f"k left: {k:<10}.")
    print(f"k right: {k:>10}.")

    3)에서 출력 길이를 지정했습니다. 동시에 정렬 타입 지시자를 통해, 출력 길이 안에서 정렬해서 출력하는 것도 가능합니다. {k:^10}을 보면, 변수 k를 길이 10으로 출력함과 동시에, 가운데 정렬해서 출력하는 의미입니다. 아래 표를 보면 각 타입 지시자 별로 정렬 방법이 정리되어 있습니다.

     

    타입 지시자 기능
    ^ 가운데 정렬
    < 왼쪽 정렬
    > 오른쪽 정렬

     

    * 출력

     

    5) 공백을 특정 문자로 채워 출력

    print(f"k:{k:-^10}.")

    3)과 4)에서 길이와 정렬을 지정했습니다. 한 번 더 기능을 추가할 수 있습니다. 바로 공백을 특정 문자로 채워 넣는 기능입니다. 위에 {k:-^10}을 보면, k를 길이 10으로 가운데 정렬하여 출력함과 동시에, - 문자로 공백을 채워서 출력하라는 의미입니다. -에는 특수문자를 포함해서 모든 문자를 사용할 수 있습니다.

     

    * 출력

     

    읽어주셔서 감사합니다.

    저번 포스팅과 이번 포스팅에 걸쳐 f-string을 이용한 다양한 포맷팅 방법을 알아보았습니다.

    다음에 더 유익한 글로 찾아오겠습니다.

     

    * 위의 실습 코드는 아래 링크에 모두 정리되어 있습니다.

    https://github.com/netsus/python_practice/blob/master/fstring_formatting_2.ipynb

     

    GitHub - netsus/python_practice: basic python course

    basic python course. Contribute to netsus/python_practice development by creating an account on GitHub.

    github.com

     

    Reference)
    1. Python Logo : https://www.redbubble.com/i/pin/Python-logo-by-Shirtupme/46071453.NP9QY 
    2. https://codedatasotrage.tistory.com/58
    반응형

    댓글

    Designed by JB FACTORY