[Python/TIL] format함수와 {} 기호를 사용한 문자열 형식

 

Today I Learned

 

- `%` 양식문자를 이용하여 문자열을 작성하는 방법도 있지만, `format()`함수과 `{}`기호를 사용하는 방법도 있다

(양식문자 설명은 여기를 참고)

 

[Python/TIL] % 양식문자 사용시 주의할 점

Today I Learned1. 양식문자의 필요성- 출력함수 `print()`를 변수와 문자열을 함께 사용하면 문제점이 있다x = 123.456789y = 123name = "사랑꽃집"print(a, "의 매출은", y, "만원을 달성했으며,", x, "%의 사업성공

hyeonnection.tistory.com

 

 

 

- `format()`를 사용하는 이유도 양식문자의 필요성과 같다.

- 문자열 사이에 변수나 값을 편리하게 삽입할 수 있다

 

{}기호와 format 메서드 사용법

변수 한개 삽입할 때

- 문자열 중간에 값을 삽입하고 싶은 부분에 `{}` 기호를 쓰고 `.format()`함수의 인자로 삽입할 값을 작성한다

str = "제 이름은 {}입니다".format("Hyeon")
print(str)

제 이름은 Hyeon입니다

 

 

- 문자열 내부에 `{` `}`기호를 출력하고 싶을때는 `{{{}}}` 로 작성한다

str = "제 이름은 {{{}}}입니다".format("Hyeon")
print(str)

제 이름은 {Hyeon}입니다

 

 

- `{{{}}}`이 아닌 `{{}}`로 작성하면 변수 삽입이 안된다

str = "제 이름은 {{}}입니다".format("Hyeon")
print(str)

제 이름은 {}입니다

 

  • 주의점
  • `{{{}}}` 사이에 띄어쓰기를 하면 에러가 난다 
  • 띄어쓰기는 `{{ {} }}` 이것만 가능하다
print("이름은 {{ {} }}".format("홍길동"))

이름은 { 홍길동 }

  • `{{{ }}}` 에러, `{ {{}} }` 에러

 

 

 

변수 여러개 삽입할 때

- `{}`를 여러개 사용하면 변수 순서대로 삽입된다

something = "연필"
unit = 5
length = 25.1234
scale = "cm"
print('{} {}개의 길이는 {}{}입니다.' .format(something, unit, length, scale))

연필 5개의 길이는 25.1234cm입니다.

 

 

- `{}`를 여러개 사용하고 안에 수를 넣어 순서를 지정할 수도 있다.

- 해당 방법을 사용하여 값의 순서를 바꾸거나 같은 값을 여러번 출력할 수 있다

something = "연필"
count = 5
length = 25.1234
unit = "cm"
print('{0} {1}개의 길이는 {2}{3}입니다. {1}개 필요하죠?' .format(something, count, length, unit))

연필 5개의 길이는 25.1234cm입니다. 5개 필요하죠?

 

 

 

{}기호에 콜론( : )을 함께 사용하기

- `{:<5}` 전체 5칸을 차지 하는데, 왼쪽에 문자열을 출력하고 공간이 남으면 나머지 오른쪽을 공백으로 채운다.

- 전체 칸을 5칸으로 지정했어도 출력하는 문자열 크기가 그 이상이면 다 출력한다

>>>"{:<5}".format("안녕")
'안녕   '
>>>"{:<5}".format("안녕하세요구르트")
'안녕하세요구르트'

 

 

- `{:>5}` 전체 5칸을 차지, 오른쪽에 문자열을 출력하고 공간이 남으면 나머지 왼쪽을 공백으로 채운다.

>>>"{:>5}".format("안녕")
'   안녕'
>>>"{:>5}".format("안녕하세요구르트")
'안녕하세요구르트'

 

 

- `{:^5}` 전체 5칸을 차지, 문자열을 중앙에 두고 남은 공간을 문자열 양쪽을 공백으로 채운다

>>>"{:^5}".format("안녕")
' 안녕  '
>>>"{:^5}".format("안녕하세요구르트")
'안녕하세요구르트'

 

 

 - `{:.2f}` 소수점 아래 두번째 자리까지만 출력

- `{:2.3f}`는 정수자리 2칸을 차지하고 소수점 세번째 자리까지 출력하라는 의미이지만, 정수는 자르지않고 다 출력한다

something = "연필"
unit = 2
length = 275.123456
scale = "cm"
print('{} {}개의 길이는 {:2.3f}{}입니다.' .format(something, unit, length, scale))

연필 2개의 길이는 275.123cm입니다.