Posis

[Python] 포매팅 활용하기 본문

Python

[Python] 포매팅 활용하기

CooNiHong 2022. 11. 22. 01:17

포매팅

포매팅이랑 print로 결과물을 출력할 때 다양한 방법으로 작성하는 것을 말합니다.

먼저 한번 짧게 예시를 보고 그다음에 하나씩 자세하게 설명하겠습니다.

str1 = "Python"
str2 = "포매팅"

print("오늘 배울 언어는", str1, "이고 배울 주제는", str2, "입니다.")
print("오늘 배울 언어는 %s이고 배울 주제는 %s 입니다."%(str1, str2))
print("오늘 배울 언어는 {}이고 배울 주제는 {} 입니다.".format(str1, str2))
print(f"오늘 배울 언어는 {str1}이고 배울 주제는 {str2} 입니다.")

이처럼 오늘 배울 포매팅은 3가지가 있습니다. 한번 자세하게 알아보겠습니다.

콤마(,)를 활용한 포매팅

콤마(,)를 활용한 포매팅은 다른 언어에서 플러스(+)를 활용한것과 매우 흡사합니다.

str1 = "Python"
str2 = "포매팅"
str3 = "티스토리"
str4 = "프로그래밍"

print("오늘 배울 언어는", str1, "이고 배울 주제는", str2, "입니다.")
print("현재", str3, "블로그는", str4, "을 다루는 블로그 입니다.")

이처럼 매우 간단하게 사용할 수 있지만 '프로그래밍 을'처럼 강제로 띄어쓰기가 들어가므로 상황에 맞춰서 잘 사용하셔야 합니다.

%를 활용한 포매팅

%는 내가 넣을 문자열 변수 자리를 지정해서 사용하는 방법입니다.

code description
%d 정수형
%f 실수형
%c 문자 1개
%s 문자열
%o 8진수
%x 16진수
%% %문자 출력
weather = "맑음"
temperature = 10
chance_shower = 43.5

print("오늘의 날씨는 %s이고 기온은 %d도 비가 내릴 확률은 %f%% 입니다."%(weather, temperature, chance_shower))

하지만 보시는 것처럼 그냥 %f를 사용하면 43.500000000이 출력되게 됩니다. 이를 해결하기 위해서는 f앞에 .1을 붙여야 합니다.

weather = "맑음"
temperature = 10
chance_shower = 43.5

print("오늘의 날씨는 %s이고 기온은 %d도 비가 내릴 확률은 %.1f%% 입니다."%(weather, temperature, chance_shower))

단 사용할 %코드가 한 개라면 소괄호 없이 사용하시면 됩니다.

중괄호( {} )를 활용한 포매터

중괄호 사용법은 %코드와 매우 흡사합니다. %코드를 사용할 자리에 {} 또는 {넣어줄 순서}를 넣어주시면 됩니다.

name = "Posis"
year = 2021
month = 7

print("블로그이름: {}, 첫글을 작성한 날짜는 {}.0{} 입니다.".format(name, year, month))
print("블로그이름: {1}, 첫글을 작성한 날짜는 {2}.0{0} 입니다.".format(month, name, year))
print("블로그이름: {}, 첫글을 작성한 날짜는 {}.0{} 입니다.".format("Posis", 2021, 7))

보시는 거와 같이 0 -> month, 1 -> name, 2 -> year처럼 순서를 정해주시고 작성해 주셔도 무방합니다. 또한 변수에 저장된 문자열이 아닌 직접 작성한 문자열도 넣을 수 있습니다.

중괄호도 출력하기

앞에서 %를 출력하기 위해 %%썼던 것을 기억하시나요? 중괄호도 똑같이 두 번 작성하면 됩니다.

name = "Posis"
year = 2021
month = 7

print("블로그이름: {}, 첫글을 작성한 날짜는 {{{}.0{}}} 입니다.".format(name, year, month))

실수형 자릿수 표현하기

num = 3.14

print("실수형: {:f}".format(num))
print("실수형: {:.1f}".format(num))
print("실수형: {:.3f}".format(num))

원하는 만큼 공간 만들기

left = "left"
right = "right"
middle = "middle"

print("({:>10s}), ({:^10s}), ({:<10s})".format(right, middle, left))

모두 10칸으로 지정해서 출력하니 right는 왼쪽에 5칸, middle은 양쪽으로 2칸, left는 오른쪽으로 6칸이 남는 것을 볼 수 있습니다. 하지만 공백으로 보니 정확히 몇 칸씩 남았는지 믿을 수 없죠. 그래서 공백을 채워서 한번 더 출력해 보겠습니다.

left = "left"
right = "right"
middle = "middle"

print("({:->10s}), ({:-^10s}), ({:-<10s})".format(right, middle, left))

f-string을 활용한 포매팅

f-string은 중괄호를 활용한 포매팅보다 더 쉽게 사용할 수 있습니다.

print(f"2 * 3 = {2*3}")
print(f"2 * 4 = {2*4}")
print(f"2 * 5 = {2*5}")

맨 위에서 문자열로 출력하는 것을 보여드려서 이번에는 숫자형으로 계산까지 해보면서 출력해 보았습니다.


오늘은 글을 좀 길게 작성하였는데 혹시나 틀린내용이 있다면 언제든지 댓글을 달아주세요!

728x90