Home 파이썬 문자열을 포멧팅하는 3가지 방법 1편 format
Post
Cancel

파이썬 문자열을 포멧팅하는 3가지 방법 1편 format

C언어에서 문자열을 사용할때 %d, %f, %c 하는 것처럼 파이썬에서도 어떤 변수, 값을 출력할때 굉장히 다양하게 접근 할 수 있습니다. 개인적으로 여기서 나오는 속도 차이는 없기 때문에 자신에게 가장 편리하고 직관적인 것을 사용하면 될거 같네요

1. format 공식문서 참고 링크

일단 포매팅을 하는 이유는 문자열, 그리고 코드를 이쁘게 보기 위해서 입니다. 구구단을 만들때도 하드 코딩으로 때려 박는 것보다 깔끔하게 for문을 쓰고 변수를 반복하는게 훨씬 편리하겠지요

1
'{인덱스0}, {인덱스1}'.format(값0, 값1)

format의 사용 방법은 위와 같습니다. 문자열 중괄호에다가 인덱스 번호를 쓰고 format안에다가 값을 순서대로 넣으면 나오게 됩니다. 한번 확인해봅시다.

1
2
3
4
a=5
b=6
s = '곱하기 {0} x {1} = {2}'.format(a,b,a*b)
print(s)

multiple result

결과는 위 처럼 나왔습니다. 그러면 인덱스 번호를 바꾸면요?

change index

0과 1 인덱스 번호를 바꾸니 위 처럼 순서가 달라졌습니다. format에 있는 인자는 순서대로 들어가지만 출력단에서 얼마든지 조절 할 수 있습니다.

change another

인덱스를 여러곳에 지정해도 마찬가지로 값이 출력이 됩니다.

두번째로는 인덱스 번호가 아닌 이름을 붙일 수 있습니다.

1
2
temp = 'number:{numa}, gender:{numb}'.format(numa=11,numb=0)
print(temp)

img1 daumcdn

이렇게 중괄호안에다가 인덱스 번호 대신에 변수이름을 쓰고 format에다가 해당 변수의 값을 지정해주면 됩니다.

foramt 2

당연히 지정해주는 값은 다른 변수를 받아서 위처럼 작성 할 수도 있습니다.

포멧안에다가 정렬 기호를 지정할 수 있습니다.

{인덱스번호/이름:정렬기준}

인덱스를 지정을 하고 콜론으로 구분한다음 정렬기준을 지정해주는 것입니다.

1
2
3
temp_a = '왼쪽 정렬 {location:<10}'.format(location='left')
temp_b = '중앙 정렬 {location:^10}'.format(location='center')
temp_c = '오른쪽 정렬 {location:>10}'.format(location='right')

img1 daumcdn

10은 칸의 숫자입니다. 10칸으로 지정을 할것이고 비어있는 곳은 공백으로 처리를 합니다. <은 왼쪽부터 ^은 중앙 >는 오른쪽 정렬인 것을 확인 할 수 있습니다.

물론 공백이 아닌 값을 지정할 수 있습니다.

1
2
3
temp_a = '왼쪽 정렬 {location:@<10}'.format(location='left')
temp_b = '중앙 정렬 {location:#^10}'.format(location='center')
temp_c = '오른쪽 정렬 {location:$>10}'.format(location='right')

img1 daumcdn

/<, ^, /> 기호 앞에다가 채울 문자를 넣어주면 됩니다.

마지막으로 정수/실수 표현을 살펴봅시다.

1
2
ss_a = '정수 표현 {first:03d}, {second:04d}'.format(first=12345,second=123)
print(ss_a)

앞과 마찬가지로 인덱스번호 또는 이름을 넣어주고 콜론으로 구분한다음에 자리수를 지정해줍시다. 정수 3자리와 정수 4자리를 표현하게 했을때 결과는

img1 daumcdn

표현할 정수보다 더 많을 경우에는 그냥 전체 주어진 값을 표시하고 부족할 경우에는 0으로 채우게 됩니다.

그러면 다른거 채울 수 있나요?

img1 daumcdn

그렇지는 않습니다.

1
2
ss_b = '실수 표현 {first:0.2f}, {second:0.5f}'.format(first=123.123,second=1.234)
print(ss_b)

img1 daumcdn

실수표현의 경우 더 자리수가 있더라도 잘라버리고 부족할 경우에는 0을 채워줍니다. 실수를 다루는 문제에서는 정확도를 가지기 때문으로 보이네요

마찬가지로 깃에다가 전체 코드가 업로드 되어 있습니다. 필요하신분은 확인하시면 됩니다.

This post is licensed under CC BY 4.0 by the author.

Comments powered by Disqus.

Error Code 1046. No database selected Select the default DB to be used by double-clicking its name in the SCHEMAS list in the sidebar 해결방법

파이썬 문자열을 포멧팅하는 3가지 방법 2편 % 서식기호