본문 바로가기

dev/python

[python] 문자열 포매팅

현재 코스피지수를 보여주는 프로그램이 있다고 가정해보자

"현재 코스피지수는 2750.26 입니다" 라고 출력할 것이다

 

하루가 지나서 변경된 값을 보여줘야 한다고 했을 때

"현재 코스피지수는 2720.13 입니다"라고 출력할 것이다

 

여기서

"현재 코스피지수는 #### 입니다" 라는 문자열은 항상 고정이다

 

내 생각엔 전체 문자열을 계속 출력하는 것보단

바뀌지 않은 문자열은 그대로 두고 바뀌는 문자열만 출력하면 더 효율적이라고 생각한다

 

이럴 때 쓰는게 문자열 포매팅이다!

 

역시나 여러가지 방식이 있는데 하나씩 보자


%-formatting

 

 

문자열에 %로 시작하는 포맷 코드를 넣고 문자열 뒤에 넣고 싶은 문자열이나 숫자열을 넣는 방식

%s 문자열(String)
%c 문자 1개(character)
%d 정수(Integer)
%f 부동소수(floating-point)
%o 8진수
%x 16진수
%% Literal % (문자 % 자체)

사용방법은 아래를 참고하자!

 

 

위 예시처럼 %f 를 써도 좋지만 대부분의 경우 %s를 쓰면 숫자열이든 문자열이든

모두 문자열로 바꿔서 넣어주기 때문에 %s를 쓰는 것을 추천한다


str.format() 메서드를 사용하는 방식

 

 

문자열을 삽입할 위치에 중괄호를 넣고 인덱스나 변수 등을 사용하여 포매팅하는 방식이다

포멧코드와 달리 형식에 구애받지 않는다

 

 

인덱스로 지정하는 방식, 변수를 대입하는 방식, 이름으로 지정하는 방식이 있으며

한 문자열에서 3가지 방식 모두를 섞어서 사용해도 무방하다


f-string 방식

 

포멧함수와 비슷하지만 더 간단하게 문자열 앞에 f를 붙이는 것만으로도 실행이 가능하다

기본적으로 변수로 지정하는 방식을 사용하며 단순한 문자열 말고 딕셔너리의 밸류값을 넣는 것도 가능하다

문자열에서 수식을 사용하는 표현식도 가능하다

무적이다

 

 

f-스트링 방식을 사용하는 이유들이 몇가지 있는데

  • 가독성 관련해서 더욱 직관적임
  • 변수의 타입이 더 다양함 (딕셔너리, 튜플 등)
  • 표현식으로 수식을 넣을 수 있는 점

위와 같은 이유들 때문에 나도 f 스트링을 자주 사용할 것 같다