Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python에서 % 연산자로 문자열 형식 지정하는 방법

Python의 문자열 포맷팅 방법

Python에서는 여러 가지 방법으로 문자열을 형식화(포맷팅)할 수 있습니다.

  • % 연산자 사용
  • {} 중괄호와 format() 메서드 사용
  • 템플릿 문자열(Template String) 사용

이 글에서는 그중에서도 "%" 기호를 사용하는 문자열 포맷팅 방법에 대해 자세히 살펴보겠습니다.

문자열 포맷팅의 두 가지 방식

Python의 문자열 포맷팅은 크게 두 가지 스타일로 나뉩니다.

  • 포맷팅 표현식(Expression) : C 언어의 printf 스타일을 기반으로 하며, % 연산자를 사용합니다.
  • 포맷팅 메서드 호출 : str.format() 메서드를 활용하는 방식으로, Python 2.6 이상부터 사용할 수 있습니다.

% 형식 지정자의 종류

%를 이용한 포맷팅은 C 언어의 printf에서 유래했으며, 다음과 같은 형식 지정자를 지원합니다.

  • 정수(Integer) — %d 또는 %i
  • 실수(Float) — %f
  • 문자열(String) — %s
  • 원시 데이터(repr) — %r
  • 16진수(Hexadecimal) — %x
  • 8진수(Octal) — %o

기본 사용 예시

>>> name = "Jeff Bezos"
>>> "Richest person in the world is %s" % name
'Richest person in the world is Jeff Bezos'

위 예제처럼 % 뒤에 값을 넣으면 문자열 안의 %s가 해당 변수 값으로 치환됩니다.

다양한 형식 지정자 활용 예제

아래는 Python에서 %를 사용해 문자열을 포맷팅하는 간단한 프로그램입니다.

# %s - 문자열
var = '27' # 문자열 형태
string = 'Variable as string = %s' %(var)
print(string)

# %r - 원시 데이터(raw data)
print ('Variable as raw data = %r' %(var))

# %i - 정수
print('Variable as integer = %i' %(int(var)))

# %f - 실수
print('Variable as float = %f' %(float(var)))

# %x - 16진수
print('Variable as hexadecimal = %x'%(int(var)))

# %o - 8진수
print('Variable as octal = %o' %(int(var)))

실행 결과

Variable as string = 27
Variable as raw data = '27'
Variable as integer = 27
Variable as float = 27.000000
Variable as hexadecimal = 1b
Variable as octal = 33

출력 결과 해석

  • %s : 값을 문자열로 변환하여 출력합니다.
  • %r : repr() 함수처럼 원시 데이터를 그대로 보여주므로 따옴표가 함께 출력됩니다.
  • %i / %d : 값을 정수 형태로 출력합니다.
  • %f : 기본적으로 소수점 6자리까지 출력됩니다 (예: 27.000000).
  • %x : 10진수 27은 16진수로 1b입니다.
  • %o : 10진수 27은 8진수로 33입니다.

마무리

% 포맷팅은 비교적 오래된 스타일이지만 여전히 많은 레거시 코드에서 사용되고 있습니다. 최신 Python(3.6 이상)에서는 f-string이나 str.format()을 사용하는 것이 더 권장되지만, % 방식의 동작 원리를 이해해 두면 기존 코드를 읽고 유지보수하는 데 큰 도움이 됩니다.