Published on

포매팅(formatting)

Authors
  • avatar
    Name
    Inhwan Cho
    Twitter

소수점 자리수 나타내는 포매팅

# fomat함수는 아래와 같이 3가지 방법으로 표현 할 수 있으며 결과는 동일합니다.
# 실수는 다음과 같이 .(점) 앞에 정렬할 길이를 지정하고, 점 뒤에 소수점 이하 자릿수를 지정합니다.

num = 12.1
print(f'소수 첫번째 자리까지 표기: {num:.1f} , 두번째 자리까지: {num:.2f}')
# 소수 첫번째 자리까지 표기: 12.1 , 두번째 자리까지: 12.10
print(('소수 첫번째 자리까지 표기: {0:.1f} , 두번째 자리까지: {1:.2f}').format(num,num))
# 소수 첫번째 자리까지 표기: 12.1 , 두번째 자리까지: 12.10
print('소수 첫번째 자리까지 표기: %.1f , 두번째 자리까지: %.2f' %(num,num))
# 소수 첫번째 자리까지 표기: 12.1 , 두번째 자리까지: 12.10

자리수를 고정한 채로 출력하는 포매팅

# 자리수를 고정한 채로 출력을 원하는 경우
'%10d' % 222
f'{222:10d}'
'{0:10d}'.format(int(222))
'       222'

# 자리수를 고정 + 왼쪽 정렬(문자열만 가능)
num = '222'
f'{num:10s}'
# '222       '
'%-10s' % '222'
# '222       '

# 왼쪽 정렬에 '<' 기호, 오른쪽 정렬에 '>'기호를 사용하여 출력도 가능합니다.
num = '222'
f'{num:<10s}'
num = '222'
# '222       '
f'{num:>10s}'
# '       222'

자리수를 고정한 채 공백(보통 숫자 '0'으로) 채우기

'{0:08.2f}'.format(22.33)
# '00022.33'

# 중요 !!! 왼쪽에 문자 채우고 0으로 나머지 칸 채우기(총8칸)
num = '222'
f'{num:0<8s}'
'22200000'

# 오른쪽에 문자 채우고 0으로 나머지 칸 채우기(총8칸)
num = '222'
f'{num:0>8s}'
'00000222'

3자리 단위마다 ','있는 숫자로 표현하기

'{0:,}'.format(1234567890)
# '1,234,567,890'