호기심 많은 분석가

[Python] f-string 문자열 리터럴 본문

Coding/Machine Learning & Python

[Python] f-string 문자열 리터럴

DA Hun 2021. 5. 28. 20:55

포스팅 개요

 Python에서 문자열 표현을 위해 %-formatting 방식과 str.format() 방식이 있음을 알았다. 최근 kaggle의 코드들을 보면서 f-string 표현식을 알게 되었는데, 꽤 편리해 f-string에 대해 더 알아보고자 한다. [Python 버전 3.6부터 지원]


포스팅 본문

 f-string이란 문자열에 f 또는 F 접두어를 붙이고 표현식을 {expression}으로 작성하여 문자열에 파이썬 표현식의 값을 삽입할 수 있게 한다. 

 예를 들어 다음 문장의 경우 pi값을 소수점 이하 세 자리까지 표현함을 알 수 있다. ( :.3f를 통해, 공백이 없어야 한다)

import math	
print(f'The value of pi is approximately {math.pi:.3f}')

# The value of pi is approximately 3.142

 아래와 같이 계산 식 표현과 날짜 표시도 가능하다.

x=5
y=10
f'x+y={x+y}'

# x+y=15
import datetime
date = datetime.datetime.now()

f'{date:%Y-%m-%d} is on a {date:%A}'

# 2019-05-11 is on a Saturday

 이제까지의 %-formatting 방식과 str.format() 방식에 비해 월등히 가독성도 뛰어나고, 사용하기도 편리하다. f-string method를 통해 더 보기 좋은 코드를 작성해보자. :)

 

+ 추가된 지식. 소수자리까지는 표현했는데 정수 자리는? 그리고 빈자리를 채우기 위해서는?

  • 2d로 십의 자리까지 표현하게 format해주었고, 그 앞에 0을 적어줌으로써 10보다 작은 숫자의 경우 0을 채워주었다.
print(f'Hello,{2:02d}')
# Hello,02