더북(TheBook)

BETTER WAY 4 C 스타일 형식 문자열을 str.format과 쓰기보다는 f-문자열을 통한 인터폴레이션을 사용하라

파이썬 코드에서는 문자열을 많이 쓴다. 사용자 인터페이스 또는 명령줄 유틸리티에 메시지를 표시하거나, 파일과 소켓에 데이터를 쓰거나, 어떤 일이 잘못됐는지 Exception에 자세히 기록할 때(Better way 27: ‘mapfilter 대신 컴프리헨션을 사용하라’ 참고) 문자열을 사용한다. 디버깅을 할 때도 사용한다(Better way 80: ‘pdb를 사용해 대화형으로 디버깅하라’, Better way 75: ‘디버깅 출력에는 repr 문자열을 사용하라’ 참고).

형식화(formatting)는 미리 정의된 문자열에 데이터 값을 끼워 넣어서 사람이 보기 좋은 문자열로 저장하는 과정이다. 파이썬에서는 언어에 내장된 기능과 표준 라이브러리를 통해 네 가지 방식으로 형식화를 할 수 있다. 하지만 나중에 설명할 한 가지 방법을 제외한 나머지는 모두 심각한 단점이 있다. 여러분은 각각의 단점을 이해하고 피해야 한다.

파이썬에서 문자열을 형식화하는 가장 일반적인 방법은 % 형식화 연산자를 사용하는 것이다. 이 연산자 왼쪽에 들어가는 미리 정의된 텍스트 템플릿을 형식 문자열이라고 부른다. 템플릿에 끼워 넣을 값들은 연산자의 오른쪽에 단일 값(값이 하나인 경우)이나 tuple(값이 여럿인 경우)로 지정한다. 예를 들어 읽기 어려운 이진 값이나 십육진 값을 십진수로 표시하기 위해 %를 사용하면 다음과 같다.

a = 0b10111011
b = 0xc5f
print('이진수: %d, 십육진수: %d' % (a, b))

>>>
이진수: 187, 십육진수: 3167
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.