더북(TheBook)

f-문자열을 사용하면 위치 지정자 중괄호 안에 완전한 파이썬 식을 넣을 수 있다. 따라서 값을 약간 변경하고 싶을 때도 간결한 구문으로 표기할 수 있으므로, 앞에서 설명한 두 번째 문제점을 해결한다. C 스타일 형식화나 str.format 메서드를 사용하면 여러 줄이 필요한 형식화를 이제는 한 줄로 해결할 수 있다.

for i, (item, count) in enumerate(pantry):
    old_style = '#%d: %-10s = %d' % (
        i + 1,
        item.title(),
        round(count))

    new_style = '#{}: {:<10s} = {}'.format(
        i + 1,
        item.title(),
        round(count))

    f_string = f'#{i+1}: {item.title():<10s} = {round(count)}'

    assert old_style == new_style == f_string

의미가 더 명확해진다면 연속된 문자열을 서로 연결해주는 기능(C 언어 문자열의 기능과 비슷함)을 사용해 f-문자열을 여러 줄로 나눌 수도 있다. 이렇게 작성한 코드는 한 줄짜리 코드보다 길지만, 다른 접근 방식으로 표현한 여러 줄짜리 코드보다 훨씬 더 깔끔하다.

for i, (item, count) in enumerate(pantry):
    print(f'#{i+1}: '
    f'{item.title():<10s} = '
    f'{round(count)}')

>>>
#1: 아보카도     = 1
#2: 바나나     = 2
#3: 체리     = 15
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.