본문 바로가기
초보자를 위한 Python/4. Python 문자열

4.4 파이썬 문자열(String) format()

by 엔터티 2022. 6. 24.
반응형

파이썬의 문자열 format()이란?

파이썬의 String format()은 최종 문자열에서 유효한 값이 있는 자리 표시자로 문자열을 교체, 대체 또는 변환하는 데 사용되는 함수입니다.

형식화된 문자열을 출력으로 반환하는 Python 문자열 클래스의 내장 함수입니다. 문자열 내부의 자리 표시자는 중괄호로 정의됩니다.

예를 들어 "Welcome to Entity{}".format('value here') 와 같은 형식이 됩니다.

 

목차

    Python의 format() 함수 구문

    templatestring.format(val1, val2...)

    매개변수
    val1, val2 … : 중괄호 {} 형식의 자리 표시자가 있는 지정된 템플릿 문자열에서 대체해야 하는 값입니다. 자리 표시자는 문자열, 키/값 쌍, 정수, 부동 소수점 숫자, 문자 등이 될 수 있습니다.

    반환 값:
    중괄호로 묶인 자리 표시자 대신 유효한 값이 대체된 최종 문자열을 반환합니다.

    자리 표시자
    템플릿 문자열의 자리 표시자는 중괄호를 사용하여 표시됩니다(예: {}). 자리 표시자는 비어 있는 {}이거나 {name} 등의 변수를 포함하거나 {0} , {1} 등의 숫자 색인을 포함할 수 있습니다.

     

    string format()은 어떻게 작동합니까?

    Python String format() 메서드는 자리 표시자를 위해 원본 문자열을 스캔합니다. 자리 표시자는 빈 중괄호({}), 위치 인수일 수 있습니다. 즉, 문자열은 예를 들어 {0}, {1} 등에 대해 인덱스 0, 1을 갖는 자리 표시자를 가질 수 있습니다.

    키워드 인수의 경우 변수 이름은 중괄호 안에 표시됩니다(예: {name}, {age}). 중괄호가 비어 있는 경우 형식의 값이 중괄호 내부에서 순서대로 대체됩니다.

    첫 번째 값은 첫 번째 빈 중괄호로 대체되고 그 뒤에 오는 중괄호가 표시됩니다. 위치 인수의 경우 인덱스는 0부터 시작하는 식으로 진행됩니다. 값은 쉼표로 구분된 형식으로 사용할 수 있으며 0 번째 값은 형식 내부의 첫 번째 값을 가리킵니다.

    키워드 인수의 경우, 즉 자리 표시자 내부에 변수를 사용할 때 필요에 따라 형식 내에서 값의 순서를 가질 수 있습니다.

    format()에 있는 변수 이름에 따라 값이 바뀌므로 순서는 중요하지 않습니다. 다음은 문자열 내부의 자리 표시자를 비어 있고 위치 지정적으로 사용하고 키워드 또는 변수를 사용하는 방법에 대한 몇 가지 예입니다.

     

    예: 빈 자리 표시자가 문자열 값으로 대체됨

    아래 예에서 문자열에는 빈 중괄호({})가 있습니다. 형식에 지정된 값은 중괄호({}) 내에서 대체됩니다.

    교체하려는 값은 문자열입니다.

     

    Python에서 문자열 형식 지정을 사용하여 중괄호({})를 문자열 값으로 대체하기를 원합니다. 값은 format("Entity")에 지정됩니다. 실행 시 중괄호 {}가 Entity로 대체되고 "Welcome to Entity tutorials" 라는 최종 문자열을 얻게 됩니다.

    ## 입력
    print ("Welcome to {} tutorials".format("Entity"))
    ## 출력
    Welcome to Entity tutorials

    예: 숫자 값으로 대체된 빈 자리 표시자

    아래 예에서는 숫자 값이 원래 문자열 내에서 대체되기를 원합니다. 숫자 값이 필요한 곳에 중괄호({})를 추가합니다. 실행되면 빈 중괄호({})가 숫자 값으로 바뀝니다.

     

    format()을 사용하여 문자열 안에 숫자를 삽입할 수도 있습니다. 이 예시는 빈 자리 표시자 {}를 format() 내부에 있는 숫자 1234로 바꾸는 방법을 보여줍니다.

    ## 입력
    print ("Welcome to Entity{} Tutorials".format("1234"))
    ## 출력
    Welcome to Entity1234 Tutorials

    예: 자리 표시자 내에서 변수 또는 키워드 인수 사용

    아래 예와 같이 중괄호 안에 변수를 사용할 수도 있습니다. 변수는 format() 내부에 정의됩니다. 따라서 실행 시 변수에 할당된 값은 원래 문자열 내부에서 대체됩니다.

     

    중괄호 안에 변수를 사용할 수 있습니다(예: {name} {num}). name 및 num 변수에 대한 값은 형식(예: format(name=”Entity”, num=”1234″)) 내에서 사용할 수 있습니다. name 및 num에 지정된 값은 {name} 및 {num} 내부에서 대체됩니다.

    ## 입력
    print ("Welcome to {name}{num} Tutorials".format(name="Entity", num="1234"))
    ## 출력
    Welcome to Entity1234 Tutorials

    예: 자리 표시자 내에서 인덱스 또는 위치 인수 사용

    값은 자리 표시자 내부에 0, 1, 2와 같은 인덱스를 사용하여 바꿀 수 있습니다. 값은 아래 예제와 같이 format()에서 순서대로 선택됩니다.

    ## 입력
    print ("Welcome to {0}{1} Tutorials".format("Entity","1234"))
    ## 출력
    Welcome to Entity1234 Tutorials

    예: 문자열 내에서 여러 자리 표시자 사용

    이 예에서는 여러 개의 빈 자리 표시자를 사용할 것입니다.

    예제에 사용된 문자열에는 여러 개의 빈 자리 표시자가 있으며 각 자리 표시자는 format() 내부의 값을 참조합니다. 첫 번째 값은 첫 번째 자리 표시자로 대체됩니다.

    ## 입력
    print ("{} is {} new kind of {} experience!".format("Entity1234", "totally","learning"))
    ## 출력
    Entity1234 is totally new kind of learning experience!

     

    자리 표시자 내부 서식 지정

    변수 또는 인덱스와 함께 자리 표시자를 비어 있는 것으로 볼 수 있습니다. 자리 표시자 내에서 Python 문자열 서식을 적용할 수도 있습니다.

    형식 설명 예시
    결과
    :d 자리 표시자 내에서 사용될 때 출력을 10진수 형식으로 제공합니다. print("The binary to decimal value is : {:d}".format(0b0011))
    The binary to decimal value is : 3
    :b 자리 표시자 내부에서 사용될 때 출력을 바이너리 형식으로 제공합니다. print("The binary value is : {:b}".format(500))
    The binary value is : 111110100
    :e 자리 표시자 내에서 사용될 때 과학적 형식으로 출력을 제공하고 출력의 지수 e는 소문자가 됩니다. print("The scientific value is : {:e}".format(40))
    The scientific value is : 4.000000e+01
    :E 자리 표시자 내에서 사용될 때 과학적 형식으로 출력을 제공하고 출력의 지수 E는 대문자가 됩니다. print("The scientific value is : {:E}".format(40))
    The scientific value is : 4.000000E+01
    :f
    이것은 고정 소수점 숫자 형식을 출력합니다. 기본적으로 소수점 6자리가 있는 모든 숫자의 출력을 얻습니다.  print("The value is : {:f}".format(40))
    The value is : 40.000000
    소수점 이하 2자리까지 필요한 경우 다음과 같이 사용하십시오. 
    :.2f (2f 앞의 마침표(.))
    print("The value is : {:.2f}".format(40))
    The value is : 40.00
    :o 8진수 형식을 출력합니다. print("The value is : {:o}".format(300))
    The value is : 454
    :x 16진수 형식을 소문자로 출력합니다. print("The value is : {:x}".format(300))
    The value is : 12c
    :X 16진수 형식을 대문자로 출력합니다. print("The value is : {:X}".format(300))
    The value is : 12C
    :n 이것은 숫자 형식을 출력합니다. print("The value is : {:n}".format(300.00))
    The value is : 300
    :%
    이렇게 하면 출력이 백분율 형식으로 표시됩니다.
    기본적으로 백분율 출력에 대해 소수점 이하 6자리를 제공합니다. 
    print("The value is : {:%}".format(0.70))
    The value is : 70.000000%
    소수점 이하 자릿수를 원하지 않는 경우 마침표를 0(:.0%)과 함께 사용할 수 있습니다. print("The value is : {:.0%}".format(0.70))
    The value is : 70%
    :_ 밑줄이 천 단위 구분 기호로 출력됩니다. 파이썬 3.6 이상에서 사용할 수 있습니다. print("The value is {:_}".format(1000000))
    The value is 1_000_000
    :, 쉼표를 천 단위 구분 기호로 출력합니다. print("The value is : {:,}".format(1000000))
    The value is : 1,000,000
    : 양수 앞에 공백이 추가됩니다.
    주어진 숫자 앞에 공백이나 패딩을 추가하는 방법을 보여줍니다. 숫자 5는 숫자 앞에 원하는 공백 수를 나타냅니다.
    print("The value is: {:5}".format(40))
    The value is:    40
    :- 음수 앞에 빼기 기호가 추가됩니다.
    {:-}를 사용하여 숫자 앞에 빼기(-) 기호가 있는 출력을 얻는 방법을 보여줍니다.
    print("The value is: {:-}".format(-40))
    The value is: -40
    :+ 더하기 기호를 사용하여 숫자가 양수임을 나타낼 수 있습니다.
     {:+}를 사용하여 숫자 앞에 더하기(+) 기호가 있는 출력을 얻는 방법을 보여줍니다.
    print("The value is: {:+}".format(40))
    The value is: +40
    := 같음은 왼쪽에 +/- 기호를 배치하는 데 사용됩니다.
    {:=}를 사용하여 등호 앞에 더하기(+/-) 기호가 있는 출력을 얻는 방법을 보여줍니다.
    print("The value is {:=}".format(-40))
    The value is -40
    :^ 최종 결과가 가운데 정렬됩니다.
     {:^}를 사용하여 텍스트를 가운데 정렬하는 방법을 보여줍니다. 숫자 10은 값이 대체될 때 가운데 정렬된 것을 표시하기 위해 10개의 공백을 추가하는 데 사용됩니다.
    print("The value {:^10} is positive value".format(40))
    The value     40     is positive value

    여기에서 최종 텍스트에 10개의 공백을 추가하는 10을 사용할 수 있으며, 바꿀 값은 10개의 공백 사이에 가운데 정렬됩니다. 10의 공백은 대체된 값의 중앙 정렬을 표시하기 위해 추가됩니다.
    :> 최종 결과가 오른쪽 정렬됩니다.
    (:>10)을 사용하여 10의 공백을 추가하고 교체된 값을 오른쪽 정렬합니다.
    print("The value {:>10} is positive value".format(40))
    The value         40 is positive value
    :< 최종 결과를 왼쪽 정렬합니다. print("The value {:<10} is positive value".format(40))
    The value 40         is positive value

     

    format()과 함께 클래스 사용

    이 예제에서는 클래스를 만들고 .format Python 메서드 내에서 클래스의 개체를 사용합니다. 자리 표시자는 클래스 개체를 사용하여 클래스 속성 또는 멤버를 참조합니다.

    클래스는 format(c=MyClass()) 내부에서 호출됩니다. 객체 c는 클래스 MyClass() 내부의 속성 및 메서드에 대한 참조를 갖습니다.

    ## 입력
    class MyClass:
        msg1="Entity"
        msg2="Tutorials"   
    
    print("Welcome to {c.msg1}1234 {c.msg2}!".format(c=MyClass()))
    ## 출력
    Welcome to Entity1234 Tutorials!

    format()과 함께 딕셔너리 사용

    아래 예와 같이 format() 내부에서 딕셔너리를 사용할 수도 있습니다.

    ## 입력
    my_dict = {'msg1': "Welcome", 'msg2': 'Entity1234'}
    print("{m[msg1]} to {m[msg2]} Tutorials!".format(m=my_dict))
    ## 출력
    Welcome to Entity1234 Tutorials!

    패딩 변수 대체

    string.format() 메서드를 사용하면 문자열 내부에 자리 표시자를 사용하여 패딩, 공백을 추가할 수 있습니다.

    아래 예에서는 format()을 사용하여 자리 표시자 내부에 공간을 추가합니다. 공백을 추가하려면 콜론(:) 다음에 중괄호 안에 공백 수를 지정해야 합니다. 따라서 자리 표시자는 {:5}처럼 보입니다.

     

    ## 입력
    print("I have {:5} dogs and {:5} cat".format(2,1))
    ## 출력
    I have     2 dogs and     1 cat

    예를 들어 자리 표시자 내부에 색인을 제공할 수도 있습니다. {0:5} 여기서 0은 형식 내부의 첫 번째 값을 나타냅니다

    ## 입력
    print("I have {0:5} dogs and {1:5} cat".format(2,1))
    ## 출력
    I have     2 dogs and     1 cat

    ## 요약

    • Python 문자열 클래스는 format()이라는 중요한 내장 명령을 제공하여 문자열을 최종 문자열에서 유효한 값으로 자리 표시자로 교체, 대체 또는 변환하는 데 도움이 됩니다.
    • 문자열 모듈 Python 내부의 자리 표시자는 중괄호로 정의됩니다(예: "Welcome to Entity1234 {}".format('value here')).
    • 자리 표시자는 비어 있는 {}이거나 {name} 등의 변수를 포함하거나 {0} , {1} 등의 숫자 색인을 포함할 수 있습니다.
    • 패딩 추가, 가운데 정렬 및 숫자 서식 지정에 도움이 되는 자리 표시자 내에서 Python의 문자열 형식 지정을 사용할 수 있습니다.
    반응형

    댓글