Python/45가지 파이썬 기초문법 예제

파이썬 (29) 문자열 포맷팅

monstro 2025. 5. 17. 15:11
728x90
반응형

이번에는 파이썬에서 문자열을 출력하기 위해 문자열을 만드는 문자열 포맷팅의 여러 방법을 알아보고

그 중에서도 가장 최근에 등장한 fstring을 이용한 방법을 알아본다

 

1) 문자열 포맷팅 - % 연산자를 사용한 구형 문자열 포맷팅

x = 10
y = 20
no = 308276567
n = 'Kim'

ex1 = 'n = %s, no = %d, sum = %d' % (n, no, (x + y))
print(ex1)

 

% 연산자를 사용한 문자열 포맷팅이다

C언어와 비슷하게 동작하며 %와 문자열을 구성하는 데이터의 자료형의 조합으로 문자열을 생성한다

다만 굉장히 오래된 방법으로 지금에 와서는 사용이 드물다

최종 실행 결과는 다음과 같다

 

2) 문자열 포맷팅 - 문자열.format을 이용한 문자열 포맷팅

x = 10
y = 20
no = 308276567
n = 'Kim'

ex2 = 'n = {n}, no = {no}, sum = {sum}'.format(n=n, no=no, sum=x+y)
print(ex2)

 

포맷팅을 할 문자열에서 format 메서드를 통해 문자열에서 사용할 데이터를 적용하는 방식이다

% 연산자를 사용하는 방식보다는 최신 방식이지만,

문자열과 format 메서드를 같이 사용해야 하므로 불편함이 있다 

최종 실행 결과는 다음과 같다

 

3) 문자열 포맷팅 - f-string을 통한 문자열 포맷팅

x = 10
y = 20
no = 308276567
n = 'Kim'

ex3 = f'n = {n}, no = {no}, sum = {x + y}'
print(ex3)

 

파이썬 3.6 이상부터 사용이 가능한 f-string 포맷팅이다

문자열 앞에 f를 수식하여 문자열에 적용할 데이터를 바로 적용할 수 있다

최종 실행 결과는 다음과 같다

 

4) 문자열 포맷팅 - string 모듈의 Template 메서드

x = 10
y = 20
no = 308276567
n = 'Kim'

from string import Template
ex4 = 'n = $n, no = $no, sum = $sum'
t = Template(ex4)

print(t.substitute(n = n,no = no, sum = x + y))

 

string 라이브러리Template 메서드를 통해 문자열을 포맷팅할 수 있다

절차는 다음과 같다

  • 문자열의 형식을 생성
  • Template 메서드생성한 형식을 넘겨주고 템플릿 인스턴스로 생성
  • 생성한 템플릿 인스턴스로부터 substitute 메서드를 호출하고 데이터를 넘겨주어 문자열 생성

최종 실행 결과는 다음과 같다

 

- f-string의 다양한 사용법

1) 진수의 출력

k = 77
print(f"2진수 : {k:b}, 8진수 : {k:o}, 16진수 : {k:x}")

 

f-string 포맷팅에서 10진수의 정수 말고도 2진수 / 8진수 / 16진수의 정수를 출력할 수 있다

16진수의 경우 x 또는 X를 사용할 수 있는데, x를 사용하면 소문자를 / X를 사용하면 대문자를 출력한다

실행 결과는 다음과 같다

 

2) 문자열의 구분

l = 10000000000
print(f'쉼표로 구분 : {l:,}')

 

f-string 포맷팅에서 특정한 문자를 통해 문자열을 구분할 수 있다

위의 경우 쉼표를 통해 긴 정수형 데이터를 구분하여 출력한다

실행 결과는 다음과 같다

 

3) 문자열의 정렬

m = 20
print(f'기본적으로 오른쪽 정렬 : {m:10}.')
print(f'가운데 정렬 : {m:^10}.')
print(f'왼쪽 정렬 : {m:<10}.')
print(f'빈칸을 채워 오른쪽 정렬 : {m:$>10}.')

 

f-string포맷팅에서 비트 연산자를 사용하여 문자열을 정렬할 수 있다

기본적으로 오른쪽 정렬되며, 정렬하여 생기는 빈 공간을 채우는 것도 가능하다

실행 결과는 다음과 같다

 

728x90
반응형