파이썬 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)이면서 소수점의 나오는 개수를 담당

.

정수부의 길이가 길어서

출력의 자릿수가 지정했던 총 자릿수

초과하게 되면 초과한 만큼을 그대로 출력

-------------------------------------------------------------------------------------

댓글을 작성해보세요.

채널톡 아이콘