<개인공부>/[Python]

[python] 파이썬 % 서식 기호 (문자열 포매팅 방법 2)

BlockDMask 2020. 9. 20. 00:30
반응형

안녕하세요 BlockDMask 입니다.
파이썬 문자열 포매팅 방법들 % 서식기호, format함수, f-string중에서 % 서식 기호에 대해서 알아보려고 합니다.
format 함수에 대해서 알고 싶다면 [바로가기]

<목차>
1. % 포매팅이란?
2. % 포매팅 예제


1. 파이썬 문자열 포매팅 % 에 대해서


문자열 포맷팅(string formatting)이란?

문자열을 만들때 원하는 위치에 특정한 값(변수)를 삽입해서 문자열을 그때그때 이쁘게 출력하는 것을 의미합니다.

예를 들어 학생 출석을 부른다고 했을떄

print('김땡땡 왔나요?')
print('박땡땡 왔나요?')
print('이땡땡 왔나요?')
이런식으로 부를 수 있겠죠?
자세히 살펴보니 '~~ 왔나요' 부분은 공통적이고 앞에 학생 이름만 바뀌지 않나요?

이럴때 우리는

김땡땡, 박땡땡, 이땡땡 이름을 리스트 자료형에 넣고
print('%s 왔나요?') % names[i] 이런식으로 표현해서 이름을 순회 하면서 출력하도록 하면 됩니다.
이 예제는 아래에서 코드로 보기로 하고
아무튼 이렇게 문자열 중간 특정 부분에 우리가 원하는 값을 넣기 위해 사용하는 것을 포맷팅 이라고 합니다.


% 서식문자

% 서식문자의 모양은 % 기호 뒤에 자료형을 가리키는 문자가 옵니다.
이런식입니다.
만약 정수를 출력한다고 하면
% + d => %d
문자열 중간에 %d가 있으면 파이썬은 이 부분에 정수 타입의 숫자가 올거구나 알았어.
라고 인식하게 됩니다.

말로만 설명하면 눈에 안들어 오니 코드로 한번 볼까요?

1
2
3
4
num = 50
= 'my age %d' % num
 
print(s)
cs

결과값은 "my age %d"위치에 num이 들어가게 되어서 "my age 50" 이런식으로 들어가게 됩니다.
여기서 문자열 뒤에 % 를 붙이고 변수를 넣은 것을 잘 알아두셔야 합니다.

정수 뿐만 아니라 실수, 

% 서식문자를 이용한 문자열 출력 자료형은 딱 3개만 알면 됩니다.
%s -> 문자열
%d -> 정수
%f -> 실수

굳이 더 알고 싶다면 아래 세개도 알아두면 좋습니다.

%o -> 8진수
%x -> 16진수
%% -> 
문자 % 표현



2. 파이썬 문자열 포매팅 % 예제


2-1) 문자열, 정수, 실수를 % 로 포매팅 해보기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# % 기호 문자 출력
names = ['kim''park''lee']
for name in names:
    print('my name is %s' % name)
 
# % 기호 정수 출력
money = 10000
s2 = 'give me %d won' % money
print(s2)
 
# % 기호 실수 출력
= 3.141592
print('value %f' % d)
 
cs

결과

이렇게 문자열에는 %s를 쓰고, 정수에는 %d, 실수에는 %f를 사용하면 됩니다.


2-2) 포매팅 해야할 변수 값이 두 개 이상일때는 어떻게 하지?

1
2
3
4
5
6
7
8
9
10
11
12
13
# 출력해야할 값이 두개 이상인 경우 () 를 이용합니다.
s1 = 'my name is %s. age : %d' % ('blockdmask'100)
print(s1)
 
# 출력해야할 값이 점점 많아 질 수록..
age = 80
money = 20000
name = 'Kim'
weight = 80.12
etc = 'abcde'
s2 = 'my name is %s, age : %d, weight : %f, money : %d, etc : %s' % (name, age, weight, money, etc)
print(s2)
 
cs

결과

이렇게 출력이 많을때는 ()를 이용해서 순서에 맞게 입력해주면 됩니다.
% 서식 문자를 이용한 문자열 포매팅은 언뜻 보면 타입을 정해주기 때문에 정확해 보이지만, 타입을 정해야 하기 때문에 불편한 점도 존재합니다.

그래서 이걸 개선하기 위해서 지난시간에 말한 str.format 형식이 나오게 된것이고, 그 이후에 또 다음 포스팅에 언급할 f-string 방법이 나오게 된 것 입니다. 

본인의 취향에 맞게, 편리한 방법을 사용하면 좋을것 같습니다.
이상으로 오늘 파이썬 포매팅 방법 그 두번째 시간인 % 서식 문자를 이용한 방법에 대해서 알아보았습니다. 감사합니다.

반응형