기록하는삶

[파이썬/python] print formatting, 형식에 맞추어 출력하기 본문

AI/파이썬(Python)

[파이썬/python] print formatting, 형식에 맞추어 출력하기

mingchin 2022. 1. 17. 23:38
728x90
반응형

위에서 정의한 변수를 특정 string 중간에 넣어 출력하거나, 실수를 출력하되 그 자릿수를 소수 셋째자리에서 반올림한 것으로 통일해 출력하는 등 상황에 맞는 format을 사용해 출력하고 싶은 경우 활용할 수 있는 방법은 총 세 가지다.

 

1) % formatting

string의 중간에 %s, %d, %f 등으로 형식을 지정한 뒤, 해당 자리에 들어갈 변수들을 tuple에 지정함으로써 출력하는 방법이다. 지정 가능한 형식은 아래와 같은데, 자주 사용하는 것들만 기억해주면 되겠다.

 

출처: 점프 투 파이썬

웬만한 경우는 %s를 사용해 해결할 수 있고, 위 예시처럼 직접 %를 str으로 입력하고 싶은 경우 일종의 escaping으로 %를 하나 더 달아주어야 한다.

특정 formatting이 동일한 길이를 갖게 하고 싶은 경우 위처럼 숫자를 달아줄 수 있고,

float형에 대해서는 전체 자릿수를 지정하면서, 소수점 뒤를 어디까지 표현할 것인지 지정할 수 있다. 10.3f의 의미는 실수를 전체 10자리로 표현하되, 세 자리는 소수점 뒤 셋째자리까지 반올림하여 나타내라는 것이다.

 

2) str.format()

형식만 조금 다를 뿐 % formatting과 거의 유사하다. formatting하고자 하는 위치들을 {}로 표현하며 index를 부여하거나 key 값을 부여하고, 해당 index 혹은 key에 들어갈 값들을 뒤에 달아준다.

 

맨 윗줄처럼 아무것도 지정하지 않으면 그냥 입력 순서대로 {} 자리에 들어가게 되고, 아래 세 방법처럼 그 순서를 정해주거나 key를 직접 부여할 수도 있다.

정렬이 좀 다른데, <, >, ^ 기호를 사용할 수 있다. 각각 왼쪽, 오른쪽, 가운데 정렬을 의미하며 마찬가지로 원하는 전체 자릿수를 지정할 수 있다. (이를 padding이라 한다.)

마찬가지로 정렬과 padding이 가능한데, 여기서는 아까와 달리 .3을 활용했을 때 소수 셋째자리에서 반올림을 진행한 결과가 나온다.

 

3) f-string 

파이썬 3.6부터 사용 가능한 가장 최신의 방법이자, 사용자들이 PEP498(Python Enhancement Proposal)를 통해 요청한 것이 반영되어 업데이트 된 것으로 가장 지향되는 방법인 것 같다.

 

string의 맨 앞에 f를 달아주고, 2)의 방법과 유사하게 해주면 된다. 근데 이제 보니 데이터 타입에 따라 정렬 default가 다르네,,??? (str은 왼쪽 정렬, int는 오른쪽 정렬)

 

escaping 방법이나 정렬 및 padding 방법은 똑같고, 아마 3.8? 버전에서 추가된 아래와 같은 기능도 있다.

f-string에 들어가는 변수들이 잘 정의되었는지 debuging하는 용도인 것 같다. 자릿수를 지정하게 되면 '변수명='을 제외하고 자릿수를 맞춰주게 된다.

728x90
반응형