파이썬에서의 문자열 포매팅 방법
문자열 포매팅은 문자열 안에 변수의 값을 삽입하거나 특정 형식으로 출력을 조정하는 방법입니다. 파이썬(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-문자열은 간결성과 가독성이 뛰어나며, 최신 파이썬 버전에서 주로 사용됩니다. 각 방법의 특징을 잘 이해하고, 코드의 가독성과 효율성을 높이기 위해 적절히 활용해 보세요!
이 글을 통해 파이썬에서 문자열을 포매팅하는 방법을 이해하고, 실습을 통해 이를 사용하는 방법을 익힐 수 있을 것입니다. 다양한 포매팅 방법을 시도해 보며, 상황에 맞는 최적의 포매팅 방법을 찾아보세요!