[파이썬] 문자열의 포맷팅과 서식화(format)

Python에서는 문자열을 포맷팅하고 서식화하는 다양한 기능을 제공합니다. 문자열의 포맷팅은 특정 값을 문자열에 동적으로 삽입하는 기능이며, 서식화는 문자열의 출력 모양을 지정하는 기능입니다. 이들 기능은 문자열 처리와 문자열 출력 시 유용하게 활용될 수 있습니다.

포맷팅 (Formatting)

1. % 연산자를 이용한 포맷팅

Python에서는 % 연산자와 형식 지정자를 사용하여 문자열을 포맷할 수 있습니다. 형식 지정자는 % 기호 다음에 나오는 문자를 사용하여 값을 적절한 형식으로 변환하여 출력하는 용도로 사용됩니다.

name = "John"
age = 30
print("My name is %s and I am %d years old" % (name, age))

위의 예시에서 %s는 문자열 값으로, %d는 정수 값으로 변환되어 출력됩니다. % 연산자 뒤에 나열되는 변수들은 형식 지정자의 위치에 순서대로 대응됩니다.

2. format() 메서드를 이용한 포맷팅

format() 메서드를 사용하여도 문자열을 포맷할 수 있습니다. 이 방식은 포맷팅이 % 연산자보다 더 유연하고 강력한 기능을 제공합니다.

name = "John"
age = 30
print("My name is {} and I am {} years old".format(name, age))

위의 예시에서 {}는 값이 들어갈 자리를 나타내며, format() 메서드의 인자로 전달되는 값들은 자리에 순서대로 대응됩니다.

3. f-strings (Formatted String Literals)

Python 3.6부터는 f-string이라고도 알려진 포맷팅 방식이 도입되었습니다. 이 방식은 기존의 % 연산자나 format() 메서드에 비해 가독성이 좋고 사용법이 간단합니다.

name = "John"
age = 30
print(f"My name is {name} and I am {age} years old")

위의 예시에서 f 접두사를 사용하고 중괄호 안에 변수를 넣으면 값을 쉽게 포맷할 수 있습니다.

서식화 (String Formatting)

1. 정렬과 공백

포맷팅 기능을 사용하여 문자열의 출력 모양을 조정할 수 있습니다. 예를 들어, {:10}와 같이 사용하면 문자열을 10칸으로 정렬할 수 있습니다.

name = "John"
print("Name: {:10} Age: 30".format(name))

위의 예시는 name 변수를 10칸으로 정렬하여 출력합니다.

2. 소수점 표시

포맷 지정자를 사용하여 실수를 소수점 이하 특정 자릿수로 표시할 수 있습니다.

pi = 3.1415926535
print("Pi: {:.2f}".format(pi))

위의 예시에서 :.2f는 소수점 이하 2자리까지 표시함을 의미합니다.

3. 정수 표시

포맷 지정자를 사용하여 정수를 특정 진법으로 표시할 수 있습니다.

num = 10
print("Number: {:b}".format(num))

위의 예시에서 :b는 이진수로 표시함을 의미합니다.

결론

Python에서는 % 연산자를 이용한 포맷팅, format() 메서드를 이용한 포맷팅, 그리고 f-strings를 사용한 포맷팅으로 문자열을 동적으로 삽입하고 서식화할 수 있습니다. 이러한 기능을 활용하면 문자열 처리 및 출력 시 더 유연하고 가독성이 좋은 코드를 작성할 수 있습니다.