출처: https://meyouus.tistory.com/64 [정보 공유 - For Me For You For Us]
본문으로 바로가기

파이썬의 f-string에 대하여

category Python 공부하기 2020. 12. 9. 18:48

흔히들 printreturn을 사용할때 원하는 값을 출력하거나 되돌려주기 위해 다음과 같이 사용했던 적이 있을 수도 있다:

>>> a = 3
>>> b = 2
>>> print("%d %d" %(a, b))
3 2

# 또는

>>> print("{} + {} = {}" .format(a, b, a+b))
3 + 2 = 5

이렇게 간단한 식이나 코드일 때는 전혀 문제가 될 것이 없다. 하지만 만약 어마어마하게 긴 코드가 되건, 여러 문자열들이 들어가는 상황이 온다면 매우 헷갈리고, 가독성이 심하게 떨어지는 문제를 겪어봤을 수도 있다.

이를 해결하는 방법중 하나를, Python 3.6 이상부터는 대안이 하나 생겼다. Literal String Interpolation의 뜻으로, 이 포스팅의 제목에서 말한 f-string을 의미하는 것이다. 위의 예제를 그대로 적용한다면, 이는 다음과 같이 쓴다:

>>> a = 3
>>> b = 2
>>> print(f"{a} {b}")
3 2

>>> print(f"{a} + {b} = {a+b}")
3 + 2 = 5

단순히 앞에 f를 붙여주면, {} 안에 원하는 요소를 통과시켜 원하는 방식으로 출력이 가능하다. 간단할뿐만 아니라, 더욱 더 직관적이면서도, 가독성도 매우 뛰어난 것을 볼 수 있다. 또 다른 예를 보자:

>>> import datetime
>>> print('{} is on a {}'.format(date.strftime("%Y/%m/%d"), date.strftime("%A")))
'2020/12/09 is Wednesday'

위에는 f-string 형식을 이용하지 않고 기존에 많은 이들이 이용하는 strformat 방식을 이용해본 것이다.

>>> import datetime
>>> date = datetime.datetime.now()
>>> print(f'{date:%Y/%m/%d} is {date:%A}')
'2020/12/09 is Wednesday'

반면에 f-string을 이용하여 출력한 결과는 위의 strformat과 똑같으나, print문 자체만 봤을 때는 가독성도 더 뛰어나고 더욱 더 직관적인 것을 볼 수 있다.