지식의 공간/파이썬

비전공자의 파이썬 독학 7. 파이썬 문자열 함수(.format 등)

빈테리 2024. 1. 19. 17:36

목차

    반응형

    파이썬의 문자열에서 하나 이상의 변수에 값을 삽입하기 위해서 포매팅을 주로 사용하게 됩니다. 문자열 포맷코드와 함께 문자 및 숫자값을 대입하는 방법을 알아보겠습니다.


    문자열 포맷코드

    %s: 문자열(String)

    %c: 문자 1개(character)

    %d: 정수(Integer)

    %f: 부동소수(floating-point)

    %o: 8진수

    %x: 16진수

    %%: 문자 % 자체 그대로

     

    1. 숫자 대입

    숫자를 문자열에 삽입하는 방법을 보여줍니다. %d는 정수를 나타내는 문자열 포맷 코드로 사용되며, 문자열 안에서 숫자를 넣고 싶은 위치에 %d를 넣은 후 실제 숫자를 가장 뒤에 있는 % 다음에 씁니다. 아래 예제는 문자열에 정수 5를 삽입하는 방법입니다. %d를 입력한후에 실제 숫자 5는 가장뒤에 있는 %다음에 입력합니다.

    >>> "I have %d apples." %5
    'I have 5 apples'

     

    2. 문자열 대입

    숫자 대신 문자열을 넣는 방법으로 %s는 문자열을 나타내는 문자열 포맷코드로 사용되며, 숫자 대신 문자열을 넣고 싶은 위치에 %s 를 사용합니다. 아래 예제는 숫자 대신 문자열 "three"를 문자열에 삽입하는 방법입니다.

    >>> "I have %s apples." %"three"
    'I have three apples.'

     

    3. 변수값 대입

    변수에 저장된 숫자값을 문자열에 삽입하는 방법입니다. 아래 예제는 변수 'count'에 저장된 값을 %d에 대입하여 문자열을 생성하게 됩니다.

    >>> count=7
    >>> "I have %d apples." %count
    'I have 7 apples.

                                                                                

    4. 2개 이상의 값 삽입

    괄호 안에 쉼표로 구분된 값을 넣어서 여러 변수를 한꺼번에 삽입합니다.

    >>> fruit_count=10
    >>> fruit_type="oranges"
    >>> "I have %d %s." %(friut_count, fruit_type)
    'I have 10 oranges

     

    즉, 앞에서 %d, %s 등의 포맷코드를 사용하여 '%는 변수야, 이 변수의 타입은 d 또는 s 또는 f야' 로 문자열 자료를 입력한 후에 '%자리에 들어갈 값들은 이런 데이터야' 하고 컴퓨터에게 알려주는 개념으로 이해하면 됩니다.


    포맷 함수 .format 을 이용한 포매팅

    포맷코드와 논리는 비슷하지만 포맷코드+% 조합 대신 {}+.format()조합으로 사용합니다. 예제들과 함께 정리해 보겠습니다.

    1. 숫자 바로 대입하기

    result="I eat {} apples" .format(10)
    print(result)
    #결과 'I eat 10 apples'

     

    2. 문자열 바로 대입하기

    result="I eat {} apples" .format("five")
    print(result)
    #결과 'I eat five apples.'

     

    3. 숫자 값을 가진 변수로 대입하기

    number=3
    result="I eat {} apples." .format(number)
    #결과 'I eat 3 apples.'

     

    4. 2개 이상의 값 넣기

    2개 이상의 값을 넣을 때에는 {0}, {1}과 같이 순서에 따라 숫자를 입력(인덱스)하고 format함수뒤에 변수를 입력할 때 해당 순서대로 입력을 합니다. 이때 숫자가 아닌 {do}, {duration}으로 변수명을 넣는 방법도 있으며 이를 혼용해서 사용할 수도 있습니다.

    do= "Studied"
    duration="4"
    "I {0} for {1} hours" .format(do, duration)
    #결과 'I studied for 4 hours'

     

    5. 자릿수 지정

    문자열에서 공백을 만들려면 변수에 자릿수를 지정해 주는 방법이 있습니다. 예를 들어 자릿수가 3개인 변수에 공백을 추가하여 문자열에 삽입을 하고싶으면 공백수+3의 값으로 함께 표현하면 됩니다. 여기서 {}안의 0은 생략이 가능합니다.

     

     

    "{0:10}".format("오렌지")
    "{:10}" .format("오렌지")
    #결과 '오렌지       '

     

    6. 오른쪽, 왼쪽, 가운데 정렬

    오른쪽, 왼쪽, 가운데 정렬은 각각 {:<}, {:>}, :{^}로 해서 화살표 끝의 모양을 생각하면 쉽게 연상이 가능합니다. 그래서 예를들어 {:>10}을 입력하면 10의 자리숫자로 오른쪽 정렬로 표현됩니다.

    "{:10}" .format("오렌지")
    #결과 '       오렌지'

     

    7. 공백을 대체 문자로 채우기

    각종 자릿수 지정과 정렬을 통해 공백이 생길 때 이 공백에 문자를 채우는 방법이 있습니다. 채워 넣을 문자는 정렬문자인 <, >, ^ 바로 앞에 넣으면 됩니다.

     

     

    8. 포매팅 문자가 아닌 { }에 문자 그대로 표현하기

    format함수에서 문자열 포매팅을 하는 방법 중. format()의 괄호 안에 변수를 표현하는 방법 말고 {} 중괄호 안에 변수를 그대로 입력하는 방법이 있습니다. 이때는 {{}} 중괄호를 중복으로 사용하여 그 안에 변수를 입력하면 됩니다.

    "{{   오렌지   }}" .format()
    #결과 '{   오렌지   }'

     

     

    반응형