문자열 포매팅은 문자열 안에 변수의 값을 삽입하거나 특정 형식으로 출력을 조정하는 방법입니다. 파이썬(Python)에서는 문자열 포매팅을 위한 여러 가지 방법을 제공하며, 이를 통해 효율적이고 가독성 높은 코드를 작성할 수 있습니다. 이번 포스팅에서는 파이썬에서 문자열을 포매팅하는 다양한 방법을 살펴보겠습니다.

1. % 연산자를 사용한 포매팅

파이썬에서 문자열 포매팅의 전통적인 방법은 % 연산자를 사용하는 것입니다. 이 방법은 C 언어의 printf 스타일을 따릅니다.

1.1. 기본 사용법

% 연산자를 사용하여 문자열에 변수를 삽입할 수 있습니다.

name = "Alice"
age = 25

formatted_string = "My name is %s and I am %d years old." % (name, age)
print(formatted_string)  # 출력: My name is Alice and I am 25 years old.

위 코드에서 %s는 문자열, %d는 정수를 의미하며, 각각 name과 age 변수의 값을 문자열에 삽입합니다.

1.2. 주요 포맷 코드

  • %s: 문자열(String)
  • %d: 정수(Integer)
  • %f: 부동소수점(Float)
  • %x: 16진수(Hexadecimal)

1.3. 소수점 이하 자릿수 지정

부동소수점 숫자의 소수점 이하 자릿수를 지정할 수 있습니다.

pi = 3.141592653589793
formatted_pi = "Pi to three decimal places: %.3f" % pi
print(formatted_pi)  # 출력: Pi to three decimal places: 3.142

위 코드에서 %.3f는 소수점 이하 세 자리까지 표시하는 형식을 의미합니다.

2. str.format() 메서드를 사용한 포매팅

str.format() 메서드는 문자열 포매팅을 위한 더 유연하고 강력한 방법을 제공합니다. 중괄호 {}를 사용하여 변수를 삽입할 수 있습니다.

2.1. 기본 사용법

name = "Bob"
age = 30

formatted_string = "My name is {} and I am {} years old.".format(name, age)
print(formatted_string)  # 출력: My name is Bob and I am 30 years old.

중괄호 {} 안에 변수의 순서대로 값을 삽입할 수 있습니다.

2.2. 인덱스와 키워드 사용

중괄호에 인덱스를 지정하여 값의 순서를 변경하거나, 키워드를 사용하여 명시적으로 값을 삽입할 수 있습니다.

formatted_string = "My name is {1} and I am {0} years old.".format(age, name)
print(formatted_string)  # 출력: My name is Bob and I am 30 years old.

formatted_string = "My name is {name} and I am {age} years old.".format(name="Charlie", age=35)
print(formatted_string)  # 출력: My name is Charlie and I am 35 years old.

2.3. 형식 지정

format() 메서드를 사용하면 숫자나 문자열의 출력 형식을 세부적으로 지정할 수 있습니다.

pi = 3.141592653589793
formatted_pi = "Pi to three decimal places: {:.3f}".format(pi)
print(formatted_pi)  # 출력: Pi to three decimal places: 3.142

3. f-문자열 (f-string)을 사용한 포매팅

f-문자열은 파이썬 3.6부터 도입된 기능으로, 문자열 앞에 f를 붙여 사용하며, 가장 간결하고 가독성이 좋은 포매팅 방법입니다.

3.1. 기본 사용법

name = "Dave"
age = 40

formatted_string = f"My name is {name} and I am {age} years old."
print(formatted_string)  # 출력: My name is Dave and I am 40 years old.

f-문자열은 중괄호 {} 안에 변수를 직접 삽입할 수 있어 매우 간편합니다.

3.2. 표현식 사용

f-문자열 안에서는 변수뿐만 아니라, 표현식을 사용할 수도 있습니다.

a = 5
b = 10

formatted_string = f"The sum of {a} and {b} is {a + b}."
print(formatted_string)  # 출력: The sum of 5 and 10 is 15.

3.3. 형식 지정

f-문자열에서도 형식을 지정할 수 있습니다.

pi = 3.141592653589793
formatted_pi = f"Pi to three decimal places: {pi:.3f}"
print(formatted_pi)  # 출력: Pi to three decimal places: 3.142

4. 템플릿 문자열을 사용한 포매팅

string 모듈의 Template 클래스를 사용하면 템플릿 문자열을 활용한 포매팅이 가능합니다. 이 방법은 보안이 중요한 경우에 유용하며, 일반적인 포매팅보다는 제한적인 기능을 제공합니다.

4.1. 기본 사용법

from string import Template

name = "Eve"
age = 28

template = Template("My name is $name and I am $age years old.")
formatted_string = template.substitute(name=name, age=age)
print(formatted_string)  # 출력: My name is Eve and I am 28 years old.

$를 사용하여 변수를 삽입하며, substitute() 메서드를 통해 값을 전달합니다.

4.2. 기본값 지정

substitute() 대신 safe_substitute() 메서드를 사용하면, 값이 전달되지 않은 경우에도 기본값을 사용할 수 있습니다.

template = Template("My name is $name and I am $age years old.")
formatted_string = template.safe_substitute(name="Frank")
print(formatted_string)  # 출력: My name is Frank and I am $age years old.

결론

이번 포스팅에서는 파이썬에서 문자열을 포매팅하는 다양한 방법을 살펴보았습니다. % 연산자, str.format() 메서드, f-문자열, 템플릿 문자열 등 각각의 방법은 사용 용도와 상황에 따라 선택할 수 있습니다. 특히, f-문자열은 간결성과 가독성이 뛰어나며, 최신 파이썬 버전에서 주로 사용됩니다. 각 방법의 특징을 잘 이해하고, 코드의 가독성과 효율성을 높이기 위해 적절히 활용해 보세요!


이 글을 통해 파이썬에서 문자열을 포매팅하는 방법을 이해하고, 실습을 통해 이를 사용하는 방법을 익힐 수 있을 것입니다. 다양한 포매팅 방법을 시도해 보며, 상황에 맞는 최적의 포매팅 방법을 찾아보세요!

+ Recent posts