반응형
str.format() 방식과 f-string 방식의 비교 설명
다음은 str.format() 방식과 Python 3.6 이상에서 사용 가능한 f-string 방식의 비교 설명입니다. 두 방식은 유사한 목적을 갖지만 사용성과 성능에서 차이가 있습니다.
1. 기본 비교
str.format() 방식
name = "Alice"
age = 30
'{} is {} years old'.format(name, age)
# 결과: 'Alice is 30 years old'
f-string 방식 (Python 3.6+)
name = "Alice"
age = 30
f'{name} is {age} years old'
# 결과: 'Alice is 30 years old'
✔️ f-string은 변수명을 직접 중괄호 {} 안에 넣어 가독성과 유지보수성이 뛰어납니다.
2. 포매팅 기능 비교
실수 출력: 소수점 2자리
- str.format():
- 'Pi is {:.2f}'.format(3.14159)
- f-string:
- f'Pi is {3.14159:.2f}'
✔️ f-string은 포매팅 규칙을 중괄호 안에 직접 삽입하므로 더 직관적입니다.
3. 표현식 사용
f-string은 표현식을 직접 중괄호에 작성할 수 있습니다:
x = 10
f'{x * 2 + 1}'
# 결과: '21'
str.format()에서는 미리 계산하거나 별도로 전달해야 합니다.
4. 성능 비교
f-string은 내부적으로 컴파일 시점에 처리되므로 속도 면에서 더 효율적입니다. 이는 대량 문자열 처리가 필요한 경우 유리합니다.
5. 가독성 비교
- str.format()은 긴 문자열에서는 인자와 포맷이 분리되어 가독성이 떨어질 수 있습니다.
- f-string은 값과 포맷을 한 줄에 직관적으로 표현하므로 유지보수가 용이합니다.
정리
항목 | str.format() | f-string |
지원 버전 | Python 2.7, 3.x | Python 3.6 이상 |
문법 간결성 | 보통 | 우수 |
성능 | 느림 | 빠름 |
표현식 지원 | 제한적 | 중괄호 안에서 직접 사용 가능 |
가독성 | 중간 | 우수 |
포매팅 유연성 | 우수 | 우수 |
'십대를 위한 코딩 > 십대를 위한 파이썬' 카테고리의 다른 글
리스트 내포와 조건문을 활용한 곱셈 필터링 실습 (0) | 2025.05.05 |
---|---|
Python 표준 라이브러리의 모듈, os와 sys의 차이 (1) | 2025.05.03 |
Python str.format() 완전 분석 (1) | 2025.05.01 |
파이썬 불리언 자료형, 숫자처럼 연산된다? (1) | 2025.04.19 |
16. 함수 고급 활용과 모듈의 기초 (1) | 2025.04.06 |