본문 바로가기
작업/Programming

파이썬(python) 문자열 포맷팅(formatting) 연습

 

 

모든 프로그래밍 언어에서 기초로 배우고 기본적으로 사용하는 입출력.

입출력 방법은 기본적으로 알고 있는 것 외에 다양하게 제공되고 있습니다.

그중 출력하는 다양한 방법을 연습했습니다.

 

 

대표적인 출력 함수 print()는 안에 따옴표(' ', " ")를 바탕으로 문자열을 출력합니다.

 

일반적으로 고정된 형태의 문자열을 출력할 수 있지만,

변수에 저장된 값의 출력 등 특정 데이터의 출력을 위해서는 문법을 사용해야 합니다.

 

 

 

파이썬에서는 3가지의 출력 방법을 제공하고 있습니다.

 

1. % 연산자 활용 방법

 

대표적으로 C언어에서 데이터 입출력을 할 때 사용하는 % 연산자를 활용하는 방법입니다.

 

 

 

2. str.format() 방법 ( { }.format() )

 

중괄호 { }안에 특정 데이터의 참조를 정의하고 format() 함수 안에 데이터와 설정을 정의하여 출력합니다.

 

 

 

3. f-format 방법 ( f" { } " )

 

중괄호 { }안에 데이터를 지정하여 출력합니다. 3.6 버전에 처음 등장한 방법이라고 합니다.

 

 

이제 각각의 방법을 예시와 함께 연습하겠습니다.

 

 

 


 

 

1. % 연산자 활용 방법 ( % Operator Formatting )

 

 % 연산자는 일반적으로 나머지 연산에서 사용합니다.

하지만 C언어 등에서는 % 연산자가 타입 지정자 (%d, %f, %s 등등)로 활용됩니다.

 

 

파이썬에서도 타입 지정자를 활용하는 방법으로 출력이 가능하며 형태는 아래와 같습니다.

 

 

 

%s는 문자열 타입, %d는 정수형입니다. 이 외에도 다양하게 있지만 정리하지 않았습니다.

 

큰 따옴표( " " )안에 있는 내용이 출력됩니다.

큰 따옴표 다음의 % ( 데이터1, 데이터2 ) 구조를 통해서 타입 지정자 위치 순서대로 대입되어 출력됩니다.

 

 

그래서 %s = name  -> pcb%d = age -> 25로 대입되어 출력 결과에 나타납니다.

 

 

 

 

 

 

 

문자 타입인 %c와 정수 타입을 5자리에 맞춰 출력하는 %5d를 사용했습니다.

 

% 연산자 방식은 타입 지정자 문법이 그대로 적용됩니다.

그래서 허용되지 않는 타입으로 출력을 시도하면 에러가 발생합니다.

 

 

 

 

2. str.format() 방법 ( { }.format() )

 

str.format()은 문자열 관련 함수입니다.

 

출력문 안에 중괄호 { }를 넣어서 참조를 지정하고, format() 인자에 출력할 데이터를 명시합니다.

 

 

 

 

 

 

출력문 안에 중괄호 { }만 지정하면 format()의 인자 순서에 맞게 대입되어 출력됩니다.

 

그래서 3개의 중괄호 { }에는 format에서 지정한 순서대로 String, Integer, Float 데이터가 들어갑니다.

 

 

 

다음은 중괄호 안에 참조 {0}, {1}, {2} ...를 지정한 경우입니다.

 

참조는 배열의 인덱스 번호처럼 0부터 사용할 수 있습니다. format(데이터1, 데이터2, 데이터3) 구조일 때,

데이터1 = 인덱스 0

데이터2 = 인덱스 1

데이터3 = 인덱스 2

 

따라서 format(Float, Integer, String) 구조로 지정되었다고 해도 출력문에는 {2}, [1}, {0}순서이기 때문에 String, Integer, Float 순서로 대입되어 출력됩니다.

 

 

 

같은 데이터를 다른 위치에 출력하고 싶다면

 

print("Float_Data = {0}, Integer_Data = {1}, Float_Data = {0}".format(Float_Data, Integer_Data, String_Data))

 

구조로 인덱스를 통해 쉽게 다룰 수 있습니다.

 

 

 

 

str.format() 방법에서도 타입 지정자를 사용하여 출력이 가능합니다.

 

차이점은 % 연산자를 사용하지 않고 콜론 ( : )을 사용한다는 것입니다.

 

출력 순서는 format()의 지정된 인자 순서와 동일하며 특수 기호를 통해서 출력을 설정할 수 있습니다.

 

: 타입 지정자를 사용 명시
> 우측 정렬
^ 가운데 정렬
< 좌측 정렬
. (실수) 소수점 아래 부분 설정

 

다른 특수 기호의 사용법도 있겠지만, 제가 예시로 배운 항목에 제한되었습니다.

 

 

 

:^10s 문자열(s)을 10자리의 공간에 맞추어(10) 가운데 정렬(^)
:07d 정수(d)를 7자리의 공간(7)에 맞추고, 남은 공간은 0으로 채움(0)
:.0f 실수(f)를 소수점(.) 0자리(0)까지 출력  = 소수점 없이 실수형 출력 (반올림 처리)
:*>10s 문자열(s)을 10자리의 공간에 맞추어(10) 우측 정렬(>). 남은 공간은 *로 채움(*)

 

 

 

3. f-format 방법 ( f" { } " )

 

f 포맷팅이라고 하는 마지막 방법은 제가 주로 사용하는 방법이기도 합니다.

 

파이썬 3버전에서 새롭게 등장한 방법인 만큼 사용하는 것이 편리했습니다.

 

출력문 앞에 f (또는 F)표시를 하기 때문에 f - format이라고 하며 사용법은 아래와 같습니다.

 

 

출력문 안의 중괄호 { }안에 데이터를 지정하여 출력을 수행합니다.

 

 

데이터를 지정을 해야만 어떤 값을 출력해야 하는지 이해하기 때문에

{}.format() 방법처럼 빈 중괄호 {}나 참조를 포함한 중괄호 {0}, {1}는 사용되지 않습니다.

 

 

가장 최신 버전인 3.9부터는 특정 " {특정 변수명 = } "구조를 지정했을 시에 값이 = 다음에 출력됩니다.

 

키와 값의 쌍 구조를 출력할 때 용이해진 것입니다.

 

 

 

이전 1, 2번 방법처럼 값의 출력 형식을 설정할 수 있습니다.

 

콜론 : 기호를 시작으로 출력 형식을 설정할 수 있습니다.

 

 

 

 


 

 

이상으로 3가지 방법의 문자열 출력문의 설정 방식을 연습했습니다.

얼마든지 응용하여 사용할 수 있기 때문에 더 알아보고 적용해볼 필요가 있을 것 같습니다.

 

 

 

- 끝 -