실버를 위한 코딩/파이썬 연습

[파이썬 연습] 파이썬 문자열 포매팅

forSilver 2024. 11. 25. 03:52
반응형

파이썬 문자열 포매팅

문자열 포매팅(String Formatting)은 텍스트 안에 변수나 값을 삽입해 동적인 문자열을 생성하는 기술입니다. 파이썬에서는 문자열 포매팅을 수행하는 다양한 방법을 제공합니다. 대표적으로는 % 연산자 방식, str.format() 메서드, 그리고 f-string 방식이 있습니다.


1. % 연산자 방식

C 언어의 printf 스타일을 따른 방식으로, 문자열 안에 포매팅 지시자를 사용하여 값을 삽입합니다.

사용법:

name = "Alice"
age = 25
print("Hello, my name is %s and I am %d years old." % (name, age))

주요 포매팅 지시자:

  • %s: 문자열
  • %d: 정수
  • %f: 부동소수점 (기본적으로 소수점 이하 6자리)
  • %.2f: 소수점 이하 2자리까지 출력

2. str.format() 메서드

str.format()은 문자열의 포매팅을 위한 메서드입니다. 중괄호 {}를 이용해 삽입할 값을 명시적으로 정의합니다.

사용법:

name = "Bob"
age = 30
print("Hello, my name is {} and I am {} years old.".format(name, age))

키워드 활용:

인덱스나 키워드를 활용해 더욱 직관적인 포매팅도 가능합니다.

print("Hello, my name is {0} and I am {1} years old.".format(name, age))  # 인덱스
print("Hello, my name is {name} and I am {age} years old.".format(name="Charlie", age=35))  # 키워드

정렬 및 포매팅:

  • {:<10}: 왼쪽 정렬 (10칸 확보)
  • {:>10}: 오른쪽 정렬 (10칸 확보)
  • {:^10}: 가운데 정렬 (10칸 확보)
  • {:0.2f}: 소수점 이하 2자리 표시

3. f-string 방식 (파이썬 3.6 이상)

f-string은 가장 간단하고 직관적인 문자열 포매팅 방식으로, 문자열 앞에 f를 붙이고 중괄호 {} 안에 변수를 삽입합니다.

사용법:

name = "Diana"
age = 28
print(f"Hello, my name is {name} and I am {age} years old.")

표현식 활용:

f-string은 중괄호 안에 간단한 표현식도 지원합니다.

a = 5
b = 10
print(f"The sum of {a} and {b} is {a + b}.")

형식 지정:

pi = 3.14159
print(f"The value of pi is approximately {pi:.2f}.")  # 소수점 이하 2자리

비교

방식 장점 단점
% 연산자 간단하고 빠르게 사용 가능 복잡한 경우 가독성 떨어짐
str.format() 가독성이 좋고, 키워드/인덱스 활용 가능 상대적으로 코드가 길어질 수 있음
f-string 간결하고 표현식 활용 가능 파이썬 3.6 이상에서만 지원

실습 과제

1. 다음 변수를 이용해 세 가지 포매팅 방법으로 문자열을 생성해 보세요.

name = "Eve"
height = 165.4
weight = 60.2

결과 예시: "My name is Eve. My height is 165.4 cm and my weight is 60.2 kg."

결과 화면

2. f-string을 이용해 사칙연산 결과를 포함한 문자열을 출력하는 코드를 작성하세요.

결과 화면


형성평가 문항

  1. f-string에서 중괄호 {} 안에 넣을 수 있는 것은 무엇인가요?
    a) 단순 변수
    b) 복잡한 표현식
    c) 함수 호출
    d) 모두 가능
  2. str.format() 메서드에서 {1}와 같은 표기법은 무엇을 의미하나요?
    a) 첫 번째 값
    b) 두 번째 값
    c) 키워드 값
    d) 임의의 값

형성평가 문항 답안

  1. 정답: d) 모두 가능
    f-string에서는 변수, 표현식, 함수 호출 모두 {} 안에 사용할 수 있습니다.
  2. 정답: b) 두 번째 값
    str.format()에서 {1}은 format 함수에 전달된 값 중 두 번째 값을 참조합니다.