보통 문자열 앞에 0을 채우는 행동은 날짜를 문자열로 계산할 때 유용하게 사용됩니다. 예를 들어, 2월을 yyyy/mm/dd로 표시한다고 하면 2020/02/02 와 같이 표현할 수 있습니다. 이 때, 요구 사항때문에 월 또는 일을 정수로 변환하여 계산한 뒤, 다시 문자열로 변경하면 '02' → (정수 변환) 2 → (문자열 변환) '2'가 되어 0을 추가 해줘야 합니다. 이러한 행동을 좀 더 편하게 할 수 있도록 아래에서 설명합니다.

문자열 타입에서 원하는 개수만큼 0 채우기

문자열 타입일 경우, 아래와 같이 2가지 방법이 있습니다. 먼저 zfill(개수)를 사용하여 [현재 스트링의 길이 - 개수]만큼 0을 채울 수 있습니다.

text = '2'

a = text.zfill(2)
b = text.zfill(10)
c = text.zfill(1)
print(a)
print(b)
print(c)

# 02
# 0000000002
# 2


만약 채우고 싶은 문자가 0이 아니라면 rjulst()를 사용하도록 합니다. 첫 번째 파라미터는 원하는 개수, 두 번째는 채울 문자입니다. 두 번째 파라미터에 문자가 아닌 문자열을 입력하면 오류가 발생합니다.

text = '2'

a = text.rjust(2, 'a')
b = text.rjust(2, '0')
c = text.rjust(10, 'd')
print(a)
print(b)
print(c)

# a2
# 02
# ddddddddd2

정수 타입에서 원하는 개수만큼 0 채우기

정수 타입을 변경할 경우, 위 함수를 사용하기 위해 정수 타입으로 변경할 필요는 없습니다. 파이썬에서 제공해주는 format()을 사용하여 손쉽게 0을 채운 후 문자열 타입으로 반환받을 수 있습니다.

target = 2

a = format(target, '03')
b = '{0:06d}'.format(target)

print(a)
print(b)


# 002
# 000002