programing

Python 3에서 선행 0으로 문자열을 패딩하는 방법

sourcejob 2023. 5. 4. 19:53
반응형

Python 3에서 선행 0으로 문자열을 패딩하는 방법

내가 만들려는 것은length = 001Python 3에서는 출력을 시도할 때마다 선행 0 없이 값을 잘라냅니다(length = 1. 캐스팅을 하지 않고 어떻게 이런 일이 일어나는 것을 막을 수 있을까요?length인쇄하기 전에 줄에?

다음을 활용합니다.zfill()임의의 문자열, 정수 또는 0으로 float하는 도우미 메서드로, Python 2.x와 Python 3.x 모두에 유효합니다.

Python 2는 더 이상 지원되지 않습니다.

샘플 사용량:

print(str(1).zfill(3))
# Expected output: 001

설명:

값에 적용할 때,zfill()초기 문자열 값의 길이가 적용된 너비 값보다 작으면 0이 포함된 왼쪽 화살표 값을 반환합니다. 그렇지 않으면 초기 문자열 값을 그대로 반환합니다.

구문:

str(string).zfill(width)
# Where string represents a string, an integer or a float, and
# width, the desired length to left-pad.

python 3.6부터 fstring을 사용할 수 있습니다.

>>> length = 1
>>> print(f'length = {length:03}')
length = 001

이를 달성하는 방법은 여러 가지가 있지만 Python 3.6+에서 가장 쉬운 방법은 다음과 같습니다.

print(f"{1:03}")

Python 정수에는 고유한 길이나 유효 자릿수가 없습니다.특정 방식으로 인쇄하려면 문자열로 변환해야 합니다.패딩 문자 및 최소 길이와 같은 항목을 지정할 수 있는 몇 가지 방법이 있습니다.

0을 최소 3자로 패딩하려면 다음을 시도합니다.

length = 1
print(format(length, '03'))

저는 이 추악한 방법을 제안하지만 효과가 있습니다.

length = 1
lenghtafterpadding = 3
newlength = '0' * (lenghtafterpadding - len(str(length))) + str(length)

저는 이것보다 더 가벼운 해결책을 찾기 위해 이곳에 왔습니다!

언급URL : https://stackoverflow.com/questions/39402795/how-to-pad-a-string-with-leading-zeros-in-python-3

반응형