파이썬 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)이면서 소수점의 나오는 개수를 담당 . 정수부의 길이가 길어서 출력의 자릿수가 지정했던 총 자릿수를 초과하게 되면 초과한 만큼을 그대로 출력 -------------------------------------------------------------------------------------