[python] 문자열 포맷팅이란? 3가지 문자열 포맷팅 방법들

코딩/python|2020. 6. 22. 17:54

문자열 포맷팅(string formatting)은 문자열 속 특정한 위치에 특정한 값을 삽입해 주는 것을 의미합니다. 만약에 문자열 중에 일부가 변할 수 있는 가능성이 있는 경우 문자열 포맷팅을 통해 그 부분만 바꿔줄 수 있습니다. 문자열 포맷팅은 크게 세가지 방법으로 구현할 수 있습니다.

 

1) % 사용하는 방법

2) format() 사용하는 방법

3) f 사용하는 방법

 

다음 코드를 한번 같이 보시죠. 위 세가지 방법으로 문자열 포맷팅을 해봤습니다. 

 

num1 = 4
num2 = 7

str1 = "%d + %d = %d" % (num1, num2, num1+num2) # % 사용하는 포맷팅

str2 = "{0} + {1} = {2}".format(num1, num2, num1+num2) # format() 사용하는 포맷팅

str3 = f"{num1} + {num2} = {num1+num2}" # f 사용하는 포맷팅

print(str1)
print(str2)
print(str3)

 

이 코드를 실행시키면 다음과 같은 화면이 출력됩니다. 

 

물론 다음과 같이 문자열 변수들도 생성되었고요. 

 

 

위 세가지 방법으로 생성된 문자열은 보시는 것과 같이 모두 동일합니다. 그렇다면 이 세가지 중에서 어떤 코드가 가장 가독성이 좋나요? 저는 세번째 방법에 의해 쓰여진 코드라고 생각합니다. 문자열의 어떤 위치에 어떤 변수의 값이 들어가는지 가장 한눈에 명확하게 보여주기 때문입니다. 코딩을 하는데 있어서 가독성 좋게 작성하는 것은 매우 중요한 일이죠. 또한 속도 면에서도 세번째 방법이 첫번째, 두번째 방법보다 더 빠르다고 합니다. 따라서 세번째 방법으로 문자열 포맷팅하는 것을 추천드립니다. 참고로 f를 이용한 포맷팅은 원래는 없던 방법인데 python 3.6 버전부터 추가된 방법이라고 합니다. 

 

 

<참고자료>

[1] https://realpython.com/python-f-strings/, Real Python, "Python 3's f-Strings: An Improved String Formatting Syntax (Guide)"