본문 바로가기
Python

format() (문자열 포맷팅 파이썬 함수)

by yororing 2024. 9. 11.

00 개요

  • 문자열을 다룰 때 사용되는 format() 함수에 관한 정리

01 format() 함수

1. 정의

  • Python에서 문자열을 다룰 때 사용됨
  • 문자열 안에 {}을 넣어 작성한 후 (예, 'Hello my friend, {}!' ) {} 안에 원하는 값을 집어넣게끔 설정하여 최종 문자열을 추출할 수 있음

2. 사용

1) 기본 사용법

  • 문자열에서 {}을 사용해 특정 위치에 값 삽입하기
'Hello, {}님!'.format('Pearl')
print(결과)
# Hello, Pearl님!

2) 위치 기반 포맷팅

  • 여러 값을 넣는 경우 여러 {}들 안에 인덱스를 넣어 위치 지정 가능
  • 인덱스 번호를 사용 시 특정 위치에 값을 매핑할 수 있어 복잡한 문자열을 구성할 때 유용하게 사용됨 
result = 'Name: {0}, Age: {1}, Favorite Color: {2}'.format('Pearl', 50, 'Pink')
print(result)
# Name: Pearl, Age: 50, Favorite Color: Pink

3) 키워드 기반 포맷팅

  • 인덱스 대신 키워드를 사용하여 원하는 위치에 값 삽입 가능
  • 이를 통해 가독성 더욱 높일 수 있음
result = 'Name: {name}, Age: {age}'.format(name='Pearl', age=50)
print(result)
# Name: Pearl, Age: 50

4) 포맷 지정자 사용

  • {} 안에 콜론:을 사용해 정수 자리수 고정,  소수점 개수 조정, 백분율 표시 등 세부적인 형식 지정 가능
# 소수점 자리수 조정
result = 'Circumference is {0:.2f}.'.format(3.14159)
# result = 'Circumference is {:.2f}.'.format(3.14159) 도 똑같은 결과
print(result)
# Circumference is 3.14.

result = 'Circumference is {0:.2f}, radius is {1:.3f}'.format(3.14159, 5.46895)
print(result)
# Circumference is 3.14, radius is 5.469

5) 정렬 및 채우기

  • 문자열 정렬 또는 특정 문자로 채우기 가능
  • 기호: 좌측 (<), 우측 (>), 중앙 (^)
  • 숫자: 문자열의 전체 길이
  • 기호 앞에 특정 문자를 넣어주면 공백 대신 해당 문자로 채워짐
# 정렬
result = "left-sort: '{:<10}', right-sort: '{:>10}', centered: '{:^10}'".format('left', 'right', 'center')
print(result)
# left-sort: 'left      ', right-sort: '     right', centered: '  center  '

# 채우기
result = "left-sort: '{:_<10}', right-sort: '{:*>10}', centered: '{:i^10}'".format('left', 'right', 'center')
print(result)
# left-sort: 'left______', right-sort: '*****right', centered: 'iicenterii'