자료구조&알고리즘/알고리즘 - 언어 기초

Python 출력시 앞에 0 채우는 방법

초코쨔응 2024. 2. 2. 16:28

문제를 풀 때마다 매번 까먹고 다시 찾아보는 정해진 자릿수만큼 출력하는 방법

ex) 0003 과 같이 항상 4자리로 출력하고 싶을 때 앞에 0 을 채우는 방법

 

숫자를 출력하는 경우가 가장 많은데, 숫자는 아래 방법으로 사용하면 된다.

 

1. 숫자 앞에 0 붙이는 방법

print(f"{1:04d}")

>>> 0001

 

python 3.6 이상 사용 가능한 f-string 방식으로 이와 같이 간단하게 쓸 수 있다.

f"{출력할숫자:0전체자릿수d}" 순서대로이다.

 

혹은 이전 버전이라면 아래의 방식을 사용해도 된다.

출력할 숫자가 number 의 자리에 들어가고, '0전체자릿수' 혹은 '{0:0전체자릿수d}' 형식이다.

number = 1

a = format(number, '02')
b = '{0:04d}'.format(number)

print(a)
print(b)

>>> 01
>>> 0001

[코드 출처 본문 하단]

 

2. 문자열 앞에 0 붙이는 방법

string_number = "1"

a = string_number.zfill(2)
b = string_number.zfill(4)

print(a)
print(b)

>>> 01
>>> 0001

[코드 출처 본문 하단]

 

zfill 을 문자열 뒤에 쓰면 되고 원하는 전체자릿수를 괄호 안에 적으면 된다.

예를 들어, python 에서 binary 값을 출력하고자 하면 문자열처럼 취급되기 때문에 format 대신 zfill 을 사용하는 것이 용이할 것이다.

print(bin(3)[2:].zfill(4))

>>> 0011

숫자 3을 bin으로 변환하면 0b11 이 된다. (그래서 앞에 0b를 빼기 위해 [2:] 로 잘라주었다.

총 자릿수를 4자리로 출력하기 위하여 .zfill(4) 를 붙여주었다.

 

혹은 rjust 방법도 있다. 0 외에 다른 값으로 채울 때 사용한다고 한다.

string_number = "1"

a = string_number.rjust(2, "a")
b = string_number.rjust(4, "b")

print(a)
print(b)

>>> a1
>>> bbb1

[코드 출처 본문 하단]

 

 

 

[참고 자료]

https://alphahackerhan.tistory.com/55