이번에는 파이썬에서 문자열을 출력하기 위해 문자열을 만드는 문자열 포맷팅의 여러 방법을 알아보고
그 중에서도 가장 최근에 등장한 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포맷팅에서 비트 연산자를 사용하여 문자열을 정렬할 수 있다
기본적으로 오른쪽 정렬되며, 정렬하여 생기는 빈 공간을 채우는 것도 가능하다
실행 결과는 다음과 같다

'Python > 45가지 파이썬 기초문법 예제' 카테고리의 다른 글
| 파이썬 (31) 중첩 딕셔너리 추가 (0) | 2025.05.18 |
|---|---|
| 파이썬 (30) 중첩 딕셔너리 (0) | 2025.05.18 |
| 파이썬 (28) 사용자 입력 처리 (0) | 2025.05.15 |
| 파이썬 (27) 멀티 파일 읽기 (0) | 2025.05.13 |
| 파이썬 (26) 파일 쓰기 (0) | 2025.05.13 |