본문 바로가기

언어/Python

[ Python ] % 포맷 지시자

반응형

파이썬에서 % 포맷 지시자는 다양하게 제공되며, 이를 사용하여 문자열, 숫자, 부동 소수점 등 다양한 데이터 타입을 포맷할 수 있습니다. 다음은 주요 % 포맷 지시자의 목록입니다.

1. 주요 포맷 지시자

  • %s: 문자열
  • %d 또는 %i: 정수 (10진수)
  • %o: 정수 (8진수)
  • %x: 정수 (16진수, 소문자)
  • %X: 정수 (16진수, 대문자)
  • %e: 부동 소수점 (지수 표기법, 소문자 e)
  • %E: 부동 소수점 (지수 표기법, 대문자 E)
  • %f 또는 %F: 부동 소수점 (소수점 표기법)
  • %g: 부동 소수점 (값에 따라 %e 또는 %f 사용, 소문자)
  • %G: 부동 소수점 (값에 따라 %E 또는 %F 사용, 대문자)
  • %c: 문자 (정수나 단일 문자)
  • %%: 문자 % 자체

2. 고급 포맷 지시자 옵션

포맷 지시자에는 추가 옵션을 사용할 수 있으며, 이는 다음과 같이 구성됩니다:

%[flags][width][.precision]type
  • flags: 좌측 정렬(-), 부호 표시(+), 공백 부호( ), 0 채우기(0)
  • width: 최소 출력 폭
  • .precision: 소수점 이하 자릿수

3. 예제

  1. 문자열
name = "Alice"
print("Hello, %s!" % name)  # 출력: Hello, Alice!
  1. 정수
number = 42
print("Number: %d" % number)  # 출력: Number: 42
  1. 8진수와 16진수
number = 255
print("Octal: %o" % number)   # 출력: Octal: 377
print("Hexadecimal: %x" % number)  # 출력: Hexadecimal: ff
print("Hexadecimal (uppercase): %X" % number)  # 출력: Hexadecimal (uppercase): FF
  1. 부동 소수점
pi = 3.14159
print("Pi: %f" % pi)  # 출력: Pi: 3.141590
print("Pi (2 decimal places): %.2f" % pi)  # 출력: Pi (2 decimal places): 3.14
  1. 지수 표기법
number = 1234567.89
print("Scientific: %e" % number)  # 출력: Scientific: 1.234568e+06
print("Scientific (uppercase): %E" % number)  # 출력: Scientific (uppercase): 1.234568E+06
  1. 혼합 포맷
name = "Bob"
age = 30
balance = 1234.5678
print("Name: %s, Age: %d, Balance: $%.2f" % (name, age, balance))
# 출력: Name: Bob, Age: 30, Balance: $1234.57
  1. 폭과 정밀도
number = 123.456
print("Number: %10.2f" % number)  # 출력: Number:     123.46
print("Number: %-10.2f!" % number)  # 출력: Number: 123.46    !
  1. 왼쪽 정렬
text = "hello"
formatted_text = "Left aligned: %-10s!" % text
print(formatted_text)  # 출력: Left aligned: hello     !
  1. 부호 표시
number = 42
formatted_number = "Sign: %+d" % number
print(formatted_number)  # 출력: Sign: +42
  1. 0으로 채우기
number = 42
formatted_number = "Padded: %05d" % number
print(formatted_number)  # 출력: Padded: 00042
  1. 다양한 예제
# 정수와 16진수, 8진수, 2진수 포맷팅
number = 255
print("Decimal: %d" % number)      # 출력: Decimal: 255
print("Hexadecimal: %x" % number)  # 출력: Hexadecimal: ff
print("Octal: %o" % number)        # 출력: Octal: 377

# 부동 소수점과 지수 표기법
pi = 3.141592653589793
print("Pi: %f" % pi)           # 출력: Pi: 3.141593
print("Pi: %.2f" % pi)         # 출력: Pi: 3.14
print("Scientific: %e" % pi)   # 출력: Scientific: 3.141593e+00

# 다양한 플래그 사용
number = -42
print("Sign: %+d" % number)      # 출력: Sign: -42
print("Space: % d" % number)     # 출력: Space: -42
print("Zero-padded: %05d" % number)  # 출력: Zero-padded: -0042

# 문자열의 최대 길이 제한
text = "hello, world"
print("Truncated: %.5s" % text)  # 출력: Truncated: hello

이와 같이 % 포맷 지시자를 활용하여 다양한 데이터 타입과 출력 형식을 제어할 수 있습니다. 이 방식은 최신 포맷팅 방법보다 덜 직관적일 수 있지만, 여전히 많은 경우에 유용하게 사용될 수 있습니다.

반응형