파이썬 - 문자열 포맷을 지정하는 여러가지 방법

파이썬에서 문자열 포맷을 지정하는 여러가지 방법

파이쎤에서 String formatter를 사용하는 여러가지 방법에 대해 정리한다.

본 글에서는 가장 원시적으로 직접 문자열을 붙이는 시도로부터, % operator를 사용하기, format() 함수 사용하기, f-string 사용하기에 대해 간략하게 다룬다.

 

직접 concatenation

만약 파이썬에서 아래와 같은 내용을 출력해야 한다면, 어떻게 해야 할까?

Name: John, Student Id: 1234, Major: Math

아주 원시적인 방법으로는, 문자열 붙이기(string concatenation)를 생각해 볼 수 있다.

name = 'John'
studentId = 1234
major = 'Math'

s = 'Name: ' + name + ', Student Id: ' + str(studentId) + ', Major: ' + major
print(s)

출력 결과는 아래와 같다.

Name: John, studentId: 1234, major: Math

보다시피 너무 비효율적이다.


 



% 오퍼레이터 사용

파이썬에서 문자열 포맷을 지정할 때 사용할 수 있는 방법으로 % 오퍼레이터를 사용하는 방법이 있다.

s = 'Name: %s' % 'John'
print(s1)

파라미터가 하나일 경우, 위와 같이 쓸 수 있다.

s = 'Name: %s, Student Id: %d, Major: %s'
print(s % ('John', 1234, 'Math'))

파라미터가 여러 개일 경우, 위와 같이 작성한다.

한편, Named Placeholder 방식으로 작성할 수도 있다.

s = 'Name: %(name)s, Student Id: %(studentId)d, Major: %(major)s'
data = {'name':'John', 'studentId':1234, 'major':'Math'}

print(s % data)

위와 같이, 파라미터에 이름을 지정해 준 후, 파이썬 딕셔너리 형태로 파라미터를 넘겨줘도 동일한 결과를 얻을 수 있다.

 

format 함수 사용

format 함수를 사용하여, 문자열 포맷을 매핑할 수도 있다.

문자열.format(파라미터) 형식으로 사용한다.

s = 'Name:{name}, Student Id:{studentId}, Major:{major}'
print(s.format(name='John', studentId=1234, major='Math'))

data = {'name':'John', 'studentId':1234, 'major':'Math'}
print(s.format(**data))

파라미터에 이름을 부여해서 지정하기 때문에 % 오퍼레이터를 사용할 때보다 명시적이다.

그러나, 길이가 길어질 수록 작성하기 여전히 어렵다.

 

반응형

 

f-string 사용

파이썬 3.6 이상에서 사용할 수 있는 String Formatter 방식이다.

문자열 앞에 f를 붙이고, 문자열 내부에 named paramter를 직접 명시한다.

문자열 외부에, 해당 파라미터에 매핑되는 데이터를 할당하기만 하면 된다.

s = f'Name:{name}, Student Id:{studentId}, Major:{major}'

name = 'John'
studentId = 1234
major = 'Math'

print(s)

f-string 방식을 사용하면 가독성이 좋고, 유지보수도 편리해진다.

댓글

Designed by JB FACTORY