2020-06-22 17:54:52

문자열 포맷팅(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 문자열을 활용한 코드라고 생각합니다. 문자열의 어떤 위치에 어떤 변수의 값이 들어가는지 가장 한눈에 명확하게 보여주기 때문입니다. 코딩을 하는데 있어서 가독성 좋게 작성하는 것은 매우 중요한 일입니다. 또한 속도 면에서도 세번째 방법이 첫번째, 두번째 방법보다 더 빠르다고 합니다. 따라서 세번째 방법으로 문자열 포맷팅하는 것을 추천드립니다.

 

 

참고로 f 문자열 포맷팅은 원래는 없던 방법인데 python 3.6 버전부터 추가된 방법이라고 합니다. 3.6 버전 첫 릴리즈가 2016년 말이니 최근에 파이썬을 설치하신 분들은 모두 다 된다고 보시면 됩니다. f 문자열은 "문자열" 앞에 단순히 f를 붙인 문자열을 뜻합니다.

 

 

만약 자신의 파이썬 버전이 궁금하신 분들은 cmd를 여시고 python을 타이핑해보세요. 자세한 사항은 아래 글을 참고하세요. ^^

 

관련 글

[python] 파이썬 버전 확인하는 코드와 명령어

 

참고자료

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

 

(이 글은 2021-5-18에 마지막으로 수정되었습니다)