티스토리 뷰

문자열 포매팅
- 목 차 -
1. % → 문자열 안에 특정 값 삽입
2.format 함수 → 문자열에 값 삽입을 쉽게
3. f문자열 포매팅 → 3.6버전 이상부터 사용가능
1. %
문자열 특정 영역에 값을 삽입
"나는 올해 29살 입니다" 라는 문자열이 있을 경우에 29라는 숫자만 다른 숫자로 바꿔서 사용하고자 할 경우가 있습니다.
이럴 때 사용되는 것이 포매팅입니다.
포매팅은 위에서 보는 것과 같이 특정한 부분의 영역을 다른 문자나 숫자로 하고자 할 경우에 사용하게 됩니다.
포매팅은 문자열이나 숫자 뿐만 아니라 소수,8진수,16진수 등 다양한 것으로 삽입을 할 수 있습니다.
문자열 포맷 종류

속성

설명

%s

문자열(String)

%c

문자 1개(Character)

%d

정수(Integber)

%f

부동 소수(Floating-point)

%o

8진수

%x

16진수

%%

'%'라는 문자표시

python 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
print ( "나는 올해 %d살 입니다." % 29 );
//결과
나는 올해 29살 입니다.
 
print ( "소수점까지 나타내는 %0.3f입니다." % 3.145 );
//결과
소수점까지 나타내는 3.145입니다.
 
age = 29 ;
print ( "나는 올해 %d살 입니다." % age );
//결과
나는 올해 29살 입니다.
 
age = 29 ;
name = "테스트" ;
print ( "나는 올해 %d살이고 이름은 %s입니다." % ( age , name ));
//결과
나는 올해 29살이고 이름은 테스트입니다.
 
print ( "%8s" % "테스트" );
//결과
□□□□□테스트
 
print ( "%-8s" % "테스트" );
//결과
테스트□□□□□
코드설명
% 29
위에서 보는 것과 같이 문자열 안에 문자나 숫자를 입력하고자 할 경우에 %를 사용하게 됩니다.
%d는 정수형을 말하는 것으로 29라는 숫자를 삽입하고자 할 경우에 %d를 문자열 안에 넣었고 문자열 끝나는 가장 뒤에 %하고 입력하고자 하는 숫자를 입력하게 됩니다.
%0.3f 3.145
정수가 아닌 소수를 입력하고자 할 경우에는 %0.xf를 사용하게 됩니다.
(.)을 의미하는 것은 소수점이라는 것을 표현해 주는 것이고 x자리에 몇번째 자리까지 표현을 하고자 할지에 대해 정해 줍니다.
위에서는 0.3f 라고 해서 소수점 세번째 자리까지 표현하게 해었는데 3.145가 아닌 3.14521342 라고 숫자를 지정해도 결과는 3.145가 나오게 됩니다.
%age
숫자나 문자를 바로 사용하지 않고 변수에 대입해서 사용할 수 있습니다.
age라는 변수에 29를 담아서 문자열의 끝자리에 %age를 선언하게 되면 위와 같은 결과가 나오게 됩니다.
% ( age , name )
변수를 대입해서 사용하고자 할 경우에 하나의 변수만 아니라 여러개의 변수에 담아서 표현이 가능합니다.
문자열 포맷 코드하고 변수의 순서가 맞으면 해당하는 문자열 포맷에 변수에 있는 값이 들어가 표현하게 됩니다.
% 8s % "테스트"
% 뒤에 숫자가 붙일 경우는 양수와 음수에 따라서 지정한 숫자만큼의 공간이 생기게 됩니다.
위의 예제를 보게 된다고 하면 % 뒤에 양수로 8이 붙었습니다.
그러면 "테스트"라는 글자를 포함해서 전체 길이가 8개인 문자열이 생기게 되는데 "테스트"라는 문자 앞에 빈 공간이 5개 생기게 되는 것입니다.
□ 표시는 빈 공간임을 의미하게 됩니다.
% -8s % "테스트"
마이너스(-)가 붙은 경우에는 반대의 경우입니다.
전체 길이가 8개인 문자열이 만들어 지는데 "테스트"라는 문자 뒤에 5개의 빈 공간이 생성되는 것입니다.
2. format 함수
문자열 포맷을 쉽게하는 함수
%를 이용한 포매팅 보다 format이라는 함수를 사용할 때 더 쉽게 할 수 있습니다.
아무래도 %를 이용하는 것보다 이 함수를 이용하는게 더 좋을거라는 생각이 듭니다.
python 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
print ( "나는 {0}살 " . format ( 29 ));
//결과
나는 29살
 
print ( "나는 {0}살이고 이름은 {1}" . format ( 29 , "테스트" ));
//결과
나는 29살이고 이름은 테스트
 
age = 29 ;
print ( "나는 {0}살" . format ( age ));
//결과
나는 29살
 
print ( "나는 {age}살이고 이름은 {name}" . format ( age = 29 , name = "테스트" ));
//결과
나는 29살이고 이름은 테스트
 
print ( "{0:<8}" . format ( "테스트" ));
//결과
테스트□□□□□
 
print ( "{0:>8}" . format ( "테스트" ));
//결과
□□□□□테스트
 
print ( "{0:^8}" . format ( "테스트" ));
//결과
□□테스트□□□
 
print ( "{0:!^8}" . format ( "테스트" ));
//결과
!!테스트!!!
 
s = 3.1423123 ;
print ( "{0:0.3f}" . format ( 3 ));
//결과
3.142
코드설명
"나는 {0}살이고 이름은{1}
문자열 뒤에 format이라는 함수를 이용해서 사용하게 되면 문자열 안에서는 %라는 연산자는 사라지게 됩니다.
대신에 {}안에 숫자가 들어오게 되는데 여기서 숫자는 인덱스를 의미합니다
첫번째 자리부터 0 , 1 , 2 .... 이렇게 나오게되고 뒤에 format을 붙여서 넣고자 하는 숫자나 문자를 삽입할 수 있습니다.
나는 {age}살이고 이름은 {name}
인덱스를 활용할 수 있을 뿐 아니라 변수명을 입력해서 사용할 수 있습니다.
age 와 name 이라는 변수 각각에 숫자와 문자를 대입하고 문자열 안에 {}를 붙여서 변수명을 입력하게 되면 해당하는 변수값이 삽입되게 됩니다.
변수를 따로 설정하지 않고도 format 함수 안에 변수명=값 의 형태로도 입력이 가능합니다.
"{0:!^8}"
<와 >를 이용하면 각각에 왼쪽과 오른쪽에 빈칸을 채우고 ^를 사용하면 가운데에 문자가 오게 됩니다.
근데 여기서 특이한 점이 있다면 이러한 기호 앞에 문자를 놓게되면 해당하는 문자가 공백으로 들어가게 됩니다.
이 점만 유의해 주시면 더 쉽게 사용하실 수 있으리라 생각이 듭니다.
3. f 문자열
3.6버전 이상부터 지원하는 문자열 포매팅
파이썬에서는 3.6버전 이상부터 format 이라는 함수를 이용하지 않고 문자열 앞에 f를 붙이면 문자열 포맷을 할 수 있습니다.
python 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
age = 29 ;
name = "테스트" ;
print ( "나는 {age}살이고 이름은 {name}" );
//결과
나는 {age}살이고 이름은 {name}
 
print ( f"나는 {age}살이고 이름은 {name}" );
//결과
나는 29살이고 이름은 홍길동
 
print ( f"나는 {age+10}살" );
//결과
나는 39살
 
array = { age : 29 , name : "테스트" };
print ( f"나는 {array[age]}살이고 이름은 {array[name]}" );
//결과
나는 29살이고 이름은 테스트
 
print ( f'{"테스트" :< 8 } ' );
//결과
테스트□□□□□
 
print ( f' { 3.145212 :0.3f} ' );
//결과
3.145
코드설명
f"나는 {age}살이고
문자열 앞에 f라고 붙였을 때 변수의 값이 삽입되어 표시되는 것을 확인할 수 있습니다.
첫번째 예제처럼 만약에 f라는 문자열이 붙지 않을 경우에는 문자열 그 자체로 출력이 됩니다.
문자열 앞에 f를 붙여서 포매팅을 할 수 있습니다.
f"나는 {age+10}살"
f 문자열 포매팅은 표현식이라는 것을 지원합니다.
표현식이라고 하면 변수와 함께 +,-와 같은 수식을 이용해서 사용할 수 있다는 것입니다.
위에서 보면 age라는 변수에 +10을 했을 때 10을 더한 값이 39가 출력이 됩니다.
나는 {array[age]}살이고 이름은 {array[name]}
key 와 value 로 선언된 변수는 아래와 같이 변수와 키를 가지고 해당하는 값을 삽입할 수 있습니다.
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday