더북(TheBook)

서식 시퀀스는 문자열 어느 위치에나 쓸 수 있으므로 문장 어디에나 값을 넣을 수 있다.

>>> 'I have spotted %d camels.' % camels

'I have spotted 42 camels.'

문자열에 서식 시퀀스가 두 개 이상이라면 두 번째 인수에는 튜플이 와야 한다. 각 서식 시퀀스는 차례대로 튜플의 원소와 매칭된다.

다음 예제는 장수 서식에 '%d', 부동소수점수 서식에 '%g', 문자열 서식에 '%s'를 사용한다.

>>> 'In %d years I have spotted %g %s.' % (3, 0.1, 'camels')

'In 3 years I have spotted 0.1 camels.'

튜플에서 원소의 개수는 문자열에 있는 서식 시퀀스의 개수와 일치해야 한다. 또한, 원소의 유형도 서식 시퀀스와 일치해야 한다.

>>> '%d %d %d' % (1, 2)

TypeError: not enough arguments for format string

>>> '%d' % 'dollars'

TypeError: %d format: a number is required, not str

첫 번째 예제에서는 원소가 부족하다. 두 번째 예제에서는 원소의 타입이 잘못되었다.

서식 연산자에 대한 더 자세한 내용은 https://docs.python.org/3/library/stdtypes.html#printf-style-string-formatting을 참조하자. 이보다 더 강력한 방법은 문자열 서식 메서드를 사용하는 것이다. 이에 대해서는 https://docs.python.org/3/library/stdtypes.html#str.format를 참조하자.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.