본문 바로가기
카테고리 없음

Python 문자열 포맷팅 기법 10가지: format(), %, f-string 활용법

by blog-bolger 2025. 3. 26.
반응형
Python 문자열 포맷팅 기법 10가지

Python에서 문자열 포맷팅은 데이터를 표현하는 중요한 방법입니다. 다양한 포맷팅 기법을 사용하면 코드의 가독성을 높이고, 유지보수를 쉽게 할 수 있습니다. 본 글에서는 Python에서 사용할 수 있는 10가지 문자열 포맷팅 기법을 소개하고, 각각의 예제를 통해 실용적인 팁을 제공합니다.

1. % 연산자 활용하기

% 연산자는 오래된 방식이지만 여전히 유용합니다. 이 방법은 문자열 내에 변수를 넣을 수 있게 해줍니다. 예를 들어:

name = "Alice"
age = 30
print("이름: %s, 나이: %d" % (name, age))

위의 코드는 이름: Alice, 나이: 30를 출력합니다.

2. str.format() 메서드 활용하기

Python 2.7부터 지원되는 str.format() 메서드는 더 많은 기능을 제공합니다. 예를 들어, 인덱스를 활용하여 변수를 삽입할 수 있습니다:

name = "Bob"
age = 25
print("이름: {}, 나이: {}".format(name, age))

이 코드는 이름: Bob, 나이: 25를 출력합니다.

3. f-string 활용하기

Python 3.6부터 도입된 f-string은 가장 현대적인 포맷팅 방법입니다. 변수를 중괄호로 감싸서 쉽게 사용할 수 있습니다:

name = "Charlie"
age = 35
print(f"이름: {name}, 나이: {age}")

결과는 이름: Charlie, 나이: 35입니다. f-string은 가독성이 뛰어나고 성능도 우수합니다.

4. 다양한 포맷 옵션

format() 메서드와 f-string은 다양한 포맷 옵션을 제공합니다. 예를 들어:

pi = 3.141592
print("Pi의 값: {:.2f}".format(pi))
print(f"Pi의 값: {pi:.2f}")

위 코드는 Pi의 값: 3.14를 출력합니다.

5. 여러 변수 포맷팅

여러 변수를 포맷팅할 때는 인덱스를 사용할 수 있습니다:

data = ["Alice", 30]
print("이름: {0}, 나이: {1}".format(data[0], data[1]))

결과는 이름: Alice, 나이: 30입니다.

6. 문자열 정렬 및 채우기

포맷팅 시 문자열을 정렬하거나 채울 수 있습니다:

name = "Dave"
print("{:<10} | {:>5}".format(name, age))

이 코드는 Dave | 30와 같이 출력되어 정렬된 형태를 보여줍니다.

7. 숫자 포맷팅

숫자를 포맷할 때는 천 단위 구분 기호를 사용할 수 있습니다:

number = 1000000
print("숫자: {:,}".format(number))

결과는 숫자: 1,000,000입니다.

8. 날짜 및 시간 포맷팅

날짜와 시간을 포맷할 때도 유용합니다:

from datetime import datetime
now = datetime.now()
print("현재 시간: {}".format(now.strftime("%Y-%m-%d %H:%M:%S"))) 

이 코드는 현재 시간: 2023-10-05 12:34:56와 같은 형식으로 출력됩니다.

9. 다중 포맷팅

다양한 정보를 동시에 포맷할 수 있습니다:

data = {"name": "Eve", "age": 28}
print("이름: {name}, 나이: {age}".format(**data))

이 코드는 이름: Eve, 나이: 28를 출력합니다.

10. 사용자 정의 포맷

사용자 정의 포맷을 통해 특정 형식으로 출력할 수 있습니다:

value = 10 / 3
print("값: {:.2f}".format(value))

결과는 값: 3.33입니다.

실용적인 팁

1. 포맷팅 방법 일관성 유지하기

코드의 일관성을 유지하는 것이 중요합니다. 여러 포맷팅 방법을 혼용하면 가독성이 떨어질 수 있습니다. 팀 내에서 포맷팅 스타일 가이드를 만들어 일관성을 유지하세요.

2. f-string 사용하기

Python 3.6 이상을 사용하고 있다면 f-string을 적극 활용하세요. 가독성이 뛰어나고, 변수를 쉽게 삽입할 수 있는 장점이 있습니다. 특히, 복잡한 표현식도 간단하게 처리할 수 있습니다.

3. 포맷 옵션 활용하기

포맷 옵션을 활용하여 숫자, 날짜 등을 쉽게 조정할 수 있습니다. 예를 들어, 소수점 이하 자릿수를 조정하거나, 날짜 형식을 변경하는 등의 작업이 가능합니다.

4. 에러 처리하기

포맷팅 시 변수가 잘못될 경우 에러가 발생할 수 있습니다. try-except 블록을 사용하여 에러를 처리하고, 사용자에게 친절한 메시지를 전달할 수 있도록 하세요.

5. 성능 고려하기

성능 측면에서도 f-string이 가장 빠릅니다. 대량의 문자열 포맷팅이 필요한 경우, 성능을 고려하여 적절한 방법을 선택하세요.

사례 연구

사례 1: 사용자 정보 출력하기

웹 애플리케이션에서 사용자 정보를 출력할 때, 포맷팅은 필수적입니다. 다음은 사용자의 이름과 나이를 출력하는 간단한 예입니다:

user_name = "Alice"
user_age = 30
print(f"사용자 이름: {user_name}, 사용자 나이: {user_age}")

이 코드는 사용자 이름: Alice, 사용자 나이: 30를 출력합니다. f-string을 사용하여 간편하게 변수를 삽입할 수 있습니다.

사례 2: 주문 정보 출력하기

이커머스 플랫폼에서 주문 정보를 보여줄 때, 포맷팅을 통해 정보를 명확히 전달할 수 있습니다:

order_id = 12345
product_name = "노트북"
price = 1200.50
print("주문 ID: {}, 상품명: {}, 가격: {:.2f}원".format(order_id, product_name, price))

이 코드는 주문 ID: 12345, 상품명: 노트북, 가격: 1200.50원을 출력합니다. 이처럼 포맷팅을 통해 정보의 명확성을 높일 수 있습니다.

사례 3: 통계 데이터 출력하기

데이터 분석 결과를 출력할 때도 포맷팅이 유용합니다:

average_score = 85.675
print(f"학생의 평균 점수: {average_score:.2f}")

이 코드는 학생의 평균 점수: 85.68을 출력합니다. 소수점 두 자리까지 표현하여 정보를 명확히 전달합니다.

요약 및 실천 팁


Python에서 문자열 포맷팅은 정보를 효과적으로 전달하는 데 필수적인 기술입니다. % 연산자, format() 메서드, f-string 등 다양한 방법을 활용하여 코드의 가독성을 높이고 유지보수를 용이하게 할 수 있습니다. 실용적인 팁들을 활용하여 일관성 있는 포맷팅을 유지하고, 성능도 고려하는 것이 중요합니다. 이를 통해 더 나은 코드를 작성할 수 있습니다.

반응형