흔히들 print
나 return
을 사용할때 원하는 값을 출력하거나 되돌려주기 위해 다음과 같이 사용했던 적이 있을 수도 있다:
>>> 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
문 자체만 봤을 때는 가독성도 더 뛰어나고 더욱 더 직관적인 것을 볼 수 있다.
'Python 공부하기' 카테고리의 다른 글
staticmethod, classmethod, instancemethod 에 대하여 (0) | 2020.12.10 |
---|---|
비트연산자 bin()에 대하여 (0) | 2020.12.01 |
zip 내장 함수에 대하여 (0) | 2020.11.27 |
isdecimal(), isdigit(), isnumeric()에 대하여 (0) | 2020.11.25 |
Enumerate 함수에 대하여 (0) | 2020.11.25 |