더북(TheBook)

앞 절에서 살펴본 format 함수의 형식 지정자 안에서 콜론 뒤에 사용할 수 있는 내장 미니 언어를 f-문자열에도 사용할 수 있다. 값을 유니코드나 repr 문자열로 변환하는 기능 역시 사용할 수 있다.

formatted = f'{key!r:<10} = {value:.2f}'
print(formatted)

>>>
'my_var' = 1.23

f-문자열을 사용한 형식화는 C 스타일 형식화 문자열에 % 연산자를 사용하는 경우나 str.format 메서드를 사용하는 경우보다 항상 더 짧다. 다음 예제에서는 모든 옵션을 짧은 순서로 나타냈으며, 길이를 비교하기 쉽게 대입 연산자의 오른쪽에 줄을 맞춰 표시했다.

f_string = f'{key:<10} = {value:.2f}'

c_tuple  = '%-10s = %.2f' % (key, value)

str_args = '{:<10} = {:.2f}'.format(key, value)

str_kw   = '{key:<10} = {value:.2f}'.format(key=key,value=value)

c_dict   = '%(key)-10s = %(value).2f' % {'key': key, 'value': value}

assert c_tuple == c_dict == f_string
assert str_args == str_kw == f_string
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.