파이썬 - 서식지정자란?

파이썬 서식 지정자와 f-string의 차이

파이썬에서 데이터를 출력할 때 서식 지정자(format specifier)는 매우 유용한 도구입니다. 초보자들도 쉽게 사용할 수 있는 이 기능은 텍스트, 숫자, 날짜 등을 특정 형식으로 변환하여 출력할 수 있게 해줍니다. 특히, 다른 프로그래밍 언어에서는 서식 지정자가 여전히 중요한 역할을 하고 있습니다. 여기서는 파이썬의 서식 지정자와 최근 많이 사용되는 f-string을 비교하고, 실무에서 어떻게 활용되는지 알아보겠습니다.

서식 지정자의 기본 개념

서식 지정자는 데이터를 특정 형식으로 출력할 수 있게 해주는 기능입니다. 파이썬에서는 % 연산자를 사용하여 서식을 지정할 수 있습니다. 이는 C 언어의 printf와 유사한 방식으로, 문자열 내에 %와 서식 지정을 위한 문자를 사용하여 데이터를 삽입합니다. 서식 지정자는 텍스트 뿐만 아니라 숫자, 날짜 등 다양한 데이터 타입에 활용될 수 있으며, 실무에서는 데이터의 가독성을 높이기 위해 자주 사용됩니다.

초급 단계: 서식 지정자 기초

서식 지정자의 기본 사용

여기서는 파이썬에서 서식 지정자를 사용하는 가장 단순한 방법을 알아보겠습니다.

name = "Alice"
age = 30
print("%s은(는) %d살입니다." % (name, age))

실행 결과

Alice은(는) 30살입니다.

위 코드에서는 문자열 "%s은(는) %d살입니다." 안에 %s와 %d를 사용하여 각각 문자열과 정수를 삽입합니다. %s는 문자열을, %d는 정수를 의미합니다. 'name'과 'age' 변수의 값을 대입하여 출력할 수 있습니다. 이와 같은 방식은 간단하고 직관적이어서 초보자들이 서식 지정자를 익히는 데 유용합니다.

조건문과 반복문 활용

이번에는 서식 지정자를 조건문과 반복문과 함께 사용하는 예제를 살펴보겠습니다.

scores = [85, 90, 78]
for i, score in enumerate(scores):
    print("학생 %d의 점수는 %d입니다." % (i + 1, score))

실행 결과

학생 1의 점수는 85입니다.
학생 2의 점수는 90입니다.
학생 3의 점수는 78입니다.

이 코드는 리스트 'scores'의 각 요소를 순회하며 각 학생의 점수를 출력합니다. enumerate 함수를 사용하여 인덱스와 값을 함께 받아와 서식 지정자를 통해 출력합니다. %d 서식 지정자는 정수형 데이터를 적절히 포맷팅하여 출력합니다.

중급 단계: 실용적인 서식 지정 프로그램

텍스트 포매팅을 통한 보고서 생성

다음 예제는 입력과 출력을 통해 간단한 보고서를 생성하는 프로그램입니다.

title = "2023년 성적 보고서"
scores = {
    "국어": 88,
    "수학": 95,
    "영어": 78
}
print("%s\n" % title)
for subject, score in scores.items():
    print("%s: %d점" % (subject, score))

실행 결과

2023년 성적 보고서

국어: 88점
수학: 95점
영어: 78점

여기서는 %s와 %d를 사용하여 보고서 제목과 각 과목의 점수를 출력합니다. 딕셔너리를 사용해 각 과목의 이름과 점수를 저장하고, items() 메소드를 통해 이들을 순회하며 서식 지정자를 활용합니다.

온도 변환 프로그램

다른 실용적 프로그램으로 섭씨를 화씨로 변환하는 프로그램이 있습니다.

celsius = 37
fahrenheit = (celsius * 9/5) + 32
print("섭씨 %d도는 화씨 %.2f도입니다." % (celsius, fahrenheit))

실행 결과

섭씨 37도는 화씨 98.60도입니다.

이 프로그램은 섭씨 온도를 화씨로 변환하여 출력합니다. %.2f 서식 지정자는 부동소수점 수를 소수점 두 자리까지 표시합니다. 이를 통해 숫자를 보다 정확하게 포맷팅할 수 있습니다.

자주 하는 실수

# 잘못된 코드
name = "Alice"
print("안녕하세요, %s")  # %s에 변수 미지정

# 올바른 코드
name = "Alice"
print("안녕하세요, %s" % name)

실행 결과

안녕하세요, %s
안녕하세요, Alice

위 예제는 서식 지정자 사용 시 변수를 지정하지 않아 발생하는 실수를 보여줍니다. 마지막 줄의 % name을 통해 서식 지정자에 값을 전달해야 합니다.

상급 단계: 함수와 클래스에서의 서식 지정

함수를 이용한 서식 지정자 활용

이제 함수로 서식 지정자를 활용하는 방법을 알아보겠습니다.

def print_score(name, score):
    print("%s의 점수는 %d입니다." % (name, score))

print_score("Bob", 92)

실행 결과

Bob의 점수는 92입니다.

함수를 사용하면 코드의 재사용성과 가독성을 높일 수 있습니다. 이 함수는 이름과 점수를 입력받아 서식 지정자를 통해 출력합니다.

클래스를 활용한 포매팅

클래스를 사용하여 더욱 구조화된 데이터 출력을 구현할 수 있습니다.

class Student:
    def __init__(self, name, score):
        self.name = name
        self.score = score

    def display(self):
        print("%s의 점수는 %d입니다." % (self.name, self.score))

student1 = Student("Charlie", 87)
student1.display()

실행 결과

Charlie의 점수는 87입니다.

Student 클래스는 학생의 이름과 점수를 속성으로 가지고 있으며, display 메소드를 통해 서식 지정자를 사용하여 출력합니다. 클래스를 활용하면 객체 지향적으로 데이터를 관리할 수 있습니다.

f-string을 이용한 상급 예제

마지막으로, f-string을 사용하여 더욱 간결하고 효율적인 코드 작성을 알아봅니다.

name = "Dave"
score = 99
print(f"{name}의 점수는 {score}입니다.")

실행 결과

Dave의 점수는 99입니다.

f-string은 최근 파이썬에서 도입된 기능으로, 변수명을 직접 문자열 안에 삽입하여 보다 읽기 쉬운 코드를 작성할 수 있게 해줍니다. 이는 서식 지정자와 달리 변수명을 직접 사용할 수 있어 가독성이 높아집니다.

요약

파이썬의 서식 지정자와 f-string은 데이터를 원하는 형식으로 변환하여 출력할 수 있는 강력한 도구입니다. 초급 단계에서는 서식 지정자의 기초를 다지고, 중급 단계에서는 실용적인 프로그램을 작성하며, 상급 단계에서는 함수를 활용하여 코드를 더욱 구조화합니다. f-string은 특히 가독성이 뛰어나 실무에서 자주 사용되는 방법입니다.

#파이썬서식지정자 #PythonFormatting #fstring #데이터출력 #문자열포매팅 #초보자코딩 #함수와클래스 #코딩팁 #개발자팁 #실무코딩