Effective Python 파이썬 코딩의 기술을 공부한 내용을 기록하며 정리하기 위한 글 입니다.
파이썬에는 문자열을 formatting하는 여러 방법이 있다. 그 중 가장 일반적인 방법은 %
연산자를 사용하는 것이다.
a = 0b10111011
b = 0xc5f
print('이진수: %d, 십육진수: %d' % (a, b))
이진수: 187, 십육진수: 3167
파이썬은 %s, %x, %f
와 같은 C언어에서 사용하는 형식 지정자를 제공하지만, 파이썬에서 C 스타일의 형식 문자열을 사용하는 것에는 문제가 있다.
format
a = 1234.5678
formatted = format(a, ',.2f')
print(formatted)
1,234.57
str.format
str.format
를 사용하면 여러 값에 대해 한번에 적용이 가능하고, C스타일의 형식 지정자 대신 위치 지정자 {}를 사용할 수 있다.
key = 'my_var'
value = 1.234
formatted = '{} = {}'.format(key, value)
print(formatted)
my_var = 1.234
각 위치 지정자에는 콜론 뒤에 형식 지정자를 넣어 어떤 형식으로 변환할지 정할 수 있다.
key = 'my_var'
value = 1.234
formatted = '{:<10} = {:.2f}'.format(key, value)
print(formatted)
my_var = 1.23
만약 %
를 표시하고 싶다면 %%
로 이스케이프 해야 한다.
print('%.2f%%' % 12.5)
print('{} replaces {{}}'.format(1.23))
12.50%
1.23 replaces {}
위치 지정자 {}에 위치 인덱스를 사용할 수 있고 같은 위치 인덱스를 여러번 사용할 수도 있다.
formatted = '{1} = {0}'.format(key, value)
print(formatted)
1.234 = my_var
파이썬 3.6부터 도입된 새로운 방법에서는 형식 문자열 앞에 f
를 붙여야 한다. f-문자열을 사용하면 위치 지정자 {} 안에 파이썬 식을 넣을 수 있어서 다양한 활용이 가능하다.
key = 'my_var'
value = 1.234
formatted = f'{key} - {value}'
print(formatted)
my_var = 1.234