본문 바로가기

프로그래머/Python

[윤성우의 열혈 파이썬 중급편] 22. 메소드 기반 문자열 조합

22. 메소드 기반 문자열 조합

기본적 사용 방법

fs = '{0}...{1}...{2}'
ms = fs.format('Robot', 125, 'Box')

'{2}...{1}...{0}'.format('Robot', 125, 'Box')

'{}...{}...{}'.format('Robot', 125, 'Box')

'{toy}...{num}...{item}'.format(toy = 'Robot', num = 125, item = 'Box')

인덱싱 연산을 추가하여

my = ['Robot', 125, 'Box']
'{0}...{1}...{2}'.format(*my)

my = ['Robot', (24, 31)]
'{0[0]}...{0[1]}...{1[0]}...{1[1]}'.format(*my)
# B..0..24..31

d = {'toy': 'Robot', 'price': 3500}
'toy = {0[toy]}, price = {0[price]}'.format(d)

보다 세밀한 문자열 구성 지정

'{0}'.format(3.14)      # '3.14'
'{0:f}'.format(3.14)    # '3.140000'

'{0:d}'.format(3)       # '3'
'{0:f}'.format(3.1)     # '3.100000'

'%f' % 3.14             # '3.140000'
'{0:f}'.format(3.14)    # '3.140000'

'%.4f' % 3.14           # '3.1400'
'{0:.4f}'.format(3.14)  # '3.1400'

'%9.4f' % 3.14          # '   3.1400'
'{0:9.4f}'.format(3.14) # '   3.1400'

'{0:<10.4f}'.format(3.14)    # 왼쪽 정렬
'{0:>10.4f}'.format(3.14)    # 오른쪽 정렬
'{0:^10.4f}'.format(3.14)    # 중앙 정렬

'%+d, %+d' % (5, -5)            # '+5, -5'
'{0:+d}, {1:+d}'.format(5, -5)  # '+5, -5'
'{0:+}, {1:+}'.format(5, -5)    # '+5, -5'
'{:+}, {:+}'.format(5, -5)      # '+5, -5'

'{0:*^10.4f}'.format(3.14)  # '**3.1400**'
'{0:+<10}'.format(7)        # '7+++++++++'
'{0:^^10}'.format('hi')     # '^^^^hi^^^^'
  • format 메소드 기반 문자열 조합을 사용하는 편이 낫다
  • 더 직관적이고 다양하게 옵션을 지정할 수 있다
  • 메소드 호출 방식이다 보니, 코드를 유연하게 작성할 수 있는 장점이 있다(ex. unpacking)