*ALWAYS UNDER CONSTRUCTION*

파이썬 포매팅

created:

문자열 포매팅의 쓸모

먼저 글자를 출력하는 예를 봅시다.

"바나나가 1개가 있다.",
"바나나가 2개가 있다."

여기서 바뀐 점은 1과 2뿐입니다.

이 두 문자열을 프린팅을 할 때 두 문자열을 모두 출력하려면 다음과 같은 코드가 필요합니다.

print("바나나가 1개가 있다.")
print("바나나가 2개가 있다.")

지금은 겨우 2개라서 별로 그래 보이지 않지만 생활 코딩님이 그러셨습니다. 코딩을 할 때는 극단적으로 생각하라고. 같은 항목이 1억 개가 있다고 생각하세요.

그렇다면

print("바나나가 1개가 있다.")
print("바나나가 2개가 있다.")
print("바나나가 3개가 있다.")
print("바나나가 4개가 있다.")
.
.
.

이렇게 1억줄의 코드를 쓰기에는 시간이 너무 아깝지 않나요? 이때 포매팅을 쓸 수 있습니다.

포매팅의 방법

먼저 문자열 포매팅의 다양한 사용법을 알아보자.

1 . C 방식 사용하기

>>> print("바나나가 %d개가 있다." % 1)
'바나나가 1개가 있다.'

다음 코드에서 문자열 뒤에 붙인 % 1 이 문자열 안 %d의 위치에 들어간 것이다.

>>> print("바나나가 %d개가 있다." % 1)
'바나나가 1개가 있다.'

다음처럼 변수를 넣을 수도 있다.

>>> banana = 1
>>> "바나나가 %d개가 있다." % banana
'바나나가 1개가 있다.'

만약 두 개 이상의 값을 포매팅 해야 한다면 % 1% (1, 2, 3) 등으로 ()괄호 안에 넣어서 표현할 수 있습니다.

만약 문자열 속에 "%" 글자를 넣고 싶다면 "%%"를 사용해야 한다. 이렇게 말이다.

>>> "%d%% 세일!!" % 10
"10% 세일!!"

문자열 포맷 코드

코드설명
%s문자열(String)
%c문자 1개(Character)
%d정수(Integer)
%f부동소수(Floating Point)
%o8진수(Octal)
%x16진수(Hexadecimal(hex))
%%문자 “%”

포맷 코드와 숫자 함께 사용하기

사실 이 부분은 거의 쓰지않는다;;

정렬

다음과 같이 %<숫자>s를 넣으면 <숫자> 만큼의 공백(" “)의 속에 포맷을 한 값을 공백 뒤에 넣는다.

>>> "%15s" % "nyan"
'           nyan'

다음과같이 코드를 짠다면

>>> "%-15s" % "nyan"
'nyan           '

다음과같이 앞에 포맷값이 들어간다.

소수점 표현

다음과같이 %<숫자1>.<숫자2>f를 넣으면 <숫자1> 은 공백 정렬과 같은 효과, <숫자2>는 소수점 아래 <숫자2>까지 나올 숫자의 개수를 말한다.

>>> "%0.6f" % 3.14159265358979323846264
'3.141592'

>>> "%15.6f" % 3.14159265358979323846264
'       3.141592'

2 . format 함수를 이용 방식 사용하기(파이썬 방식)

format 함수 방식은 앞에나온 C 방식보다 더 쉽고 나은 방식이다.

>>> "바나나가 {0}개가 있다.".format(1)
'바나나가 1개가 있다.'

{0} 부분이 .fotmat() 에 나오는 인덱스 값이다.

{0}.format(1, 2, 3)에서 0번째인 1을 넣는다.

만약 두개이상의 값을 넣을려면 당연하게도 문자열에 {0}외에도 {1}, {2}등을 넣어주면 된다.

값을 대입할때 변수로 넣기

다음과같이 인덱스를 넣을때 변수에 넣을 수 있다.

>>> "바나나가 {banana}개가 있다.".format(banana=1)
'바나나가 1개가 있다.'

정렬

>>> "{0:<10}".format("nyan")
'nyan      '

:<[숫자]를 사용하면 포맷된 값을 [숫자]만큼 공백(” “)의 왼쪽에 삽입한다.

>>> "{0:>10}".format("nyan")
'nyan      '

:>[숫자]를 사용하면 포맷된 값을 [숫자]만큼 공백(” “)의 오른쪽에 삽입한다.

>>> "{0:^10}".format("nyan")
'nyan      '

:^[숫자]를 사용하면 포맷된 값을 [숫자]만큼 공백(” “)의 가운데에 삽입한다.

공백을 값으로 채우기

>>> "{0:-<10}".format("nyan")
'nyan------'

:[문자][기호][숫자]를 사용하면 공백(” “) 대신 문자가 채우게 된다.

소수점 표현

다음과같이 %<숫자1>.<숫자2>f를 넣으면 <숫자1> 은 공백 정렬과 같은 효과, <숫자2>는 소수점 아래 <숫자2>까지 나올 숫자의 개수를 말한다.

>>> "{0:0.6f}".format(3.14159265358979323846264)
'       3.141592'

3. f 포메팅 문자 사용하기

이 방식이 가장 많이 사용된다.

>>> banana = 1
>>> f'바나나가 {banana}개가 있다.'
'바나나가 1개가 있다.'

또는

>>> f'바나나가 {1}개가 있다.'
'바나나가 1개가 있다.'

이처럼 문자열 앞에 f를 붙여주고 포메팅 할 부분에 {}를 넣고 그 안에 값을 넣는 방식으로 가장 심플하고 쉽게 쓸 수 있다.

문자열 앞에 f를 붙여준다는점을 제외하고는 앞의 format() 함수 사용과 별차이점이 없기때문에 따로 설명하지는 않겠다.

"{", "}" 문자 사용하기

"{", "}"문자를 사용할때는 "{{", "}}"를 사용하면 된다.

마무리

이상으로 파이썬 문자열 포메팅 포스팅을 마치겠습니다..

📌 이 포스팅은 박응용 님의 DOIT! 점프투 파이썬을 보고 배우고 만들었습니다. 비슷한 부분이 있을 수 있습니다. 🏷 강의 링크[↗] {: .notice–info}

Webmentions[0]

    Q. Why isn't my webmention not appearing?

    A. I deploy this site not so often and this site is static site. So don't expect your webmention to appear instantly. Thanks for the webmention and sorry for the inconvenience.
    last deployed: see footer