4. C 스타일 형식 문자열을 str.format과 쓰기보다는 f-문자열을 통한 인터폴레이션을 사용하라

hyuckhoon.ko·2025년 5월 15일
0

Python

목록 보기
4/4
post-thumbnail

C 스타일 형식 문자열의 문제점

1. 형식화 식에서 오른쪽에 있는 tuple 내 데이터의 변경이 프로그램 오류로 이어진다.

key = 'my_car'
value = 1.234
formatted = '%-10s = %.2f' % (key, value)
print(formatted)  # my_car     = 1.23

아래와 같이 에러 발생

formatted = '%-10s = %.2f' % (value, key)
TypeError: must be real number, not str

2. 형식화 전에 값의 변경이 발생하면 읽기가 어려워 질 수 있다.

pantry = [
    ('아보카도', 1.25),
    ('바나나', 2.5),
    ('체리', 15),
]

for i, (item, count) in enumerate(pantry):
    print('#%d: %-10s = %.2f' % (i, item, count))
    
#0: 아보카도       = 1.25
#1: 바나나        = 2.50
#2: 체리         = 15.00

아래와 같이 for문을 수정하면

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

3. 형식화 문자열에서 같은 값을 여러 번 사용하고 싶다면, 튜플에서 같은 값을 여러 번 반복해야 한다.

template = "%s는 음식을 좋아해. %s가 요리하는 모습을 봐요."
name = "철수"
formatted = template % (name, name)
print(formatted)  # 철수는 음식을 좋아해. 철수가 요리하는 모습을 봐요.

0개의 댓글