[Python] 문자열 포맷팅

김두나·2024년 10월 10일

Python

목록 보기
7/10

문자열 포맷팅

문자열 포맷팅은 내가 원하는 값을 집어넣어 문자열로 바꿔주기 위해 사용.
문자열 안에 변수를 집어넣을 placeholder를 작성하고 그 위치에 값을 집어넣도록 하는 방식

문자열 포맷팅 종류

1. C-style Formatting

C언어의 printf함수는 포맷팅을 아래 예시처럼 함

#include <stdio.h>
void main(){
	printf("integer: %d, float:%3f", 3,3.141592);
}

%d%f등을 활용해 포맷팅한 문자열을 출력함
파이썬에서는 동일한 동작을 아래 코드를 통해 작동시킬 수 있음

위의 코드를 살펴보면 문자열 뒤에 modulo 연산자 %를 이용해 포맷팅을 진행함을 알수 있음
숫자의 자릿수를 제한하고 싶다면 %4.2f또는 %3d의 형태로 작성할 수 있음
%4.2f의 전체 자릿수가 4가 안된다면 왼쪽 앞쪽 공백을 공백으로 채우고 소수점 2번째 자리까지만 출력하도록 함.
%3d는 전체 자릿수가 3이 안된다면 왼쪽 앞쪽을 공백으로 채움

이 포맷팅 방식은 python에서 자주 사용하는 list와 tuple, dict등의 변수를 표시할 때 오류가 자주 발생하기 떄문에 권장하지 않는 방식이지만 아직 많은 교재들이나 코드에서 사용하고 있음

2. curly bracket Formatting

중괄호(curly bracket)을 이용한 포맷팅이 파이썬에서 추천하는 포맷팅 방식 중 하나임
앞서 이야기한 C-Style Formatting의 %d, %f 부분을 단순히 {}로 바꾸기만 하면 됨

C Style Formatting에서 보여주던 소수점 자르기 등은 {:3.2f}등의 placeholder를 통해 보여줄 수 있음

->{{.6f}} 소수점자리를 6번째 자리까지만 보여주겠다라는 뜻임

curly bracket을 이용할 때의 장점은 단순히 순서대로 값을 넣는 것이 아니라, placeholder에 이름을 붙이고 그 위치마다 값을 넣어 줄 수 있다는 것임

위의 코드와 같이 {}안에 placeholder의 이름을 지정해 줄수있고, 이름을 지정했을떄는 포맷팅을 할 때는 그 이름도 함께 써줘야함

또한 이름이 정해진 상태에서 소수점 자리기도 가능

C-style Formatting의 단점은 curly bracket formatting에서 해결되 위의 코드같이 list를 출력할 수도 있음

3. f-string

f string은 Formatting Literal String이라고도 불리는 포맷팅 방식
포맷팅용 문자열에 값을 대체하는 방식이 아닌 포맷팅이 완료된 문자열 그 자체를 생성하는 방식임

사용법 : "'앞에 f또는 F를 붙여서 사용함

위와 같은 방식으로 직접 변수를 반들어 문자열에 포맷팅 한 문자열을 만들어 낼 수 있음

위의 코드처럼 list나 dict, tuple이 들어가도 정상적으로 표현됨

0개의 댓글