파이썬 print - 문자열 서식 지정자와 포매팅
https://www.inflearn.com/questions/138926
이 질문을 답변하다가 요약을 잘해서
블로그에 내용을 더 정리해서 올리려고 한다.
-------------------------------------------------------------------------------------
(https://dojang.io/mod/page/view.php?id=2300)
실수는 점을 기준으로 점 앞은 정렬할 길이 지정하고,
점 뒤는 소수점 이하의 자릿수 지정한다고 합니다.
곰곰이 생각해봤는데 정렬할 길이 지정이라는 부분은
하나의 약속 같은 개념이 아닐까 한다.
.
%10.2f
총 자릿수는 10이고 소수점의 나오는 개수는 2개입니다.
.
Colab을 돌리면서 혹시나 하는 마음에 len을 사용하여 확인 길이를 확인해봤습니다.
print('%010.2f' % (.141592653589793))
print("길이 : ",len('%010.2f' % (.141592653589793)),"\n")
print('%010.2f' % (1.141592653589793))
print("길이 : ",len('%010.2f' % (1.141592653589793)),"\n")
print('%010.2f' % (12345.141592653589793))
print("길이 : ",len('%010.2f' % (12345.141592653589793)),"\n")
print('%010.2f' % (123456789.141592653589793))
print("길이 : ",len('%010.2f' % (123456789.141592653589793)),"\n")
#출력 결과
#0000000.14
#길이 : 10
#
#0000001.14
#길이 : 10
#
#0012345.14
#길이 : 10
#
#123456789.14
#길이 : 12
이런식(%010.2f)으로 앞에 0을 부착한 이유는
나머지 부분을 0으로 표현하기 위해서 부착하였습니다.
.
이로써 어떤 숫자를 정렬할 길이로 지정하면
정수 부분이 0개, 1개 상관없이 .(점), 소수점 자리 이하까지
포함한 총 자릿수는 보장한다
것을 알 수 있습니다!
.
만약 정수 부분이 지정한 것보다 길게 입력했다면
보장하는 범위를 넘어가기 때문에 초과한 만큼 출력을 하는 것입니다.
-------------------------------------------------------------------------------------
요약하면,
%전체길이.소수점의 나오는 개수
• .(점)을 기준으로
• 점 앞부분은 정수(int)이면서 전체 길이(총 자릿수)를 담당
• 점 뒷부분은 실수(float)이면서 소수점의 나오는 개수를 담당
.
정수부의 길이가 길어서
출력의 자릿수가 지정했던 총 자릿수를
초과하게 되면 초과한 만큼을 그대로 출력
-------------------------------------------------------------------------------------
댓글을 작성해보세요.