2022년 10월 21일 금요일

파이썬 zfill 문자열 앞에 0 채우기 (이진수 만들기)

이 파이썬의 zfill함수는 이진수를 만들때 유용합니다. 뿐만 아니라, 전화번호나 날짜등을 표기할때도 유용합니다. 이번에는 주로 바이너리를 표현하는 방법에 관련해서적어 보려고 합니다.

먼저 8을 이진수로 변경해봅니다.

print (bin(8))
# 0b1000

앞의 0b가 거슬립니다. 문자열이니 2번째 다음부터 가져오면 이진수만 떼어내 봅시다.

print (bin(8)[2:])
# 1000

이번엔 8이외에 여러 숫자들을 이진수로 바꾸어 봅니다.


print (bin(0)[2:])
print (bin(1)[2:])
print (bin(2)[2:])
print (bin(3)[2:])
print (bin(6)[2:])
print (bin(7)[2:])
print (bin(8)[2:])

# 0
# 1
# 10
# 11
# 110
# 111
# 1000

이진수가 만들어지지만, 뭔가 좀 비뚤빼뚤합니다. 이때 자리를 맞추기 위해서 zfill함수를 사용합니다.

print (bin(0)[2:].zfill(4))
print (bin(1)[2:].zfill(4))
print (bin(2)[2:].zfill(4))
print (bin(3)[2:].zfill(4))
print (bin(6)[2:].zfill(4))
print (bin(7)[2:].zfill(4))
print (bin(8)[2:].zfill(4))

# 0000
# 0001
# 0010
# 0011
# 0110
# 0111
# 1000

인제 뭔가 자리수가 맞는것 같습니다. 이렇게 표현하는 것이 뭔가 줄이 맞으니, 가독성면에서도 좋습니다 이 zfill 함수는 위와 같이 N자리 보다 작은 스트링을 앞쪽에 0을 붙여서 채웁니다.

이 방법은 위와 같이 파이썬으로 이진수 표현할 때 유용합니다. 

댓글 없음:

댓글 쓰기