Programming

; develop a program

Back-End/Python

[Python] 문자열 형식화(formatting)

Clloud_ 2022. 9. 17. 09:37
반응형

이번 포스팅에서는 파이썬의 문자열 formatting에 대하여 공부를 해보고자 한다.

문자열 formatting 방법에는 format( ) 함수를 이용하는 방식, 형식 문자(%)를 이용한 방식, f 문자열을 이용하는 방식이 있다.

 


문자열 formatting

문자열 formatting은 문장 Layout을 미리 만들어 놓고 값은 나중에 대입하는 방식으로 문자열을 만드는 것을 말한다.

 

여러 문자열이 같은 Layer에 특정 값들만 바뀌는 경우 사용한다.

문자열 속 특정한 위치에 특정한 값을 삽입해 문자열을 formatting 하여 깔끔하게 재사용하도록 할 수 있다.

이름 : XXX 나이 : XXX 성별 : XXX
기본 형식은 같은데 XXX에 들어갈 값들이 상황에 따라 다를 경우 사용

 


format( ) 함수 이용

format( ) 함수는 서식을 지정하여 출력하고 싶은 경우에 사용한다.

 

값을 { }가 지정된 위치에 순차적으로 값을 대입한다.

format( ) 함수를 이용하여 문자열을 형식화할 때는 자료형을 표시할 필요가 없다.

 

예제 1

순서 1. 문자열을 만든다. - 값을 받을 곳을 { }로 표시

순서 2. format( ) 함수를 사용하여 값을 넣는다.

introduce = '이름: {}, 나이: {}, 성별: {}'	# 문자열

value1 = introduce.format('홍길동', 20, '남성')
value2 = introduce.format('김연아', 23, '여성')

 

[실행결과]

value1	# '이름: 홍길동, 나이: 20, 성별: 남성'
value2	# '이름: 김연아, 나이: 23, 성별: 여성'

 

예제 2

순서 1. { }을 변수 처리한다.

myformat = '이름 : {name}, 나이 : {age}'
value = myformat.format(name="김영수", age=20)

 

[실행결과]

value	# '이름 : 김영수, 나이 : 20'

 


형식 문자(%)를 이용한 formatting

형식 문자를 이용한 formatting은 "형식 문자를 이용한 서식" % (형식 문자에 넣을 값)의 형식으로 구성되어 있다.

"이름 : % s, 나이 : % d" % ('홍길동', 32)

 

문자열의 어느 위치에 값이 들어가는지를 표시하기 위해 문자열 안에 % 기호로 시작하는 형식 지정 문자열(format specification string)을 붙인다.

 

형식 문자(format 문자) 비고
모든 형식 문자는 % 로 시작한다.
%s 문자열
%d 정수
%f  실수
%% %

 


f 문자열

f 문자열은 변수를 선언한 후, 값을 넣을 자리에 {변수명}을 이용해 변수가 가진 값을 문자열에 추가하고 f" " 로 문자열을 감싸주는 방식이다.

 

문자열을 정렬할 때에는 정렬 표시 후 최소 자릿수를 지정하고 값이 최소 자릿수 보다 적으면 공백으로 채운다.

<: 왼쪽 정렬, >: 오른쪽 정렬, ^: 가운데 정렬

 

변수가 실수형일 경우 소수점 몇 자리까지 표현할 것인지 지정하고, 만약 값이 지정한 자릿수 이상일 경우 반올림한다.

.자릿수 f (ex) .2f
d: 정수 타입, f: 실수 타입

 

예시 1

순서 1. 각각의 변수를 선언한다.

순서 2. 값을 넣을 자리에 {변수명}을 추가하고 f" "로 문자열을 감싼다.

height = 180.57
weight = 75

value = f'키는 {height:.1f}cm이며, 몸무게는 {weight}kg 입니다.

 

[실행결과]

value	# '키는 180.6cm이며, 몸무게는 75kg 입니다.'

 

예시 2

순서 1. "left" 4글자 단어를 왼쪽으로 정렬한다. 최소 자릿수 = 10

순서 2. "center" 5글자 단어를 가운데로 정렬한다. 최소 자릿수 = 10

순서 3. "right" 5글자 단어를 오른쪽으로 정렬한다. 최소 자릿수 = 10

f'{"left":<10}'    # 'left      '
f'{"center":^10}'  # '  center  '
f'{"right":>10}'   # '     right'

 


반응형