Today I Learned
- `%` 양식문자를 이용하여 문자열을 작성하는 방법도 있지만, `format()`함수과 `{}`기호를 사용하는 방법도 있다
- `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입니다.
'💻개발 > Python' 카테고리의 다른 글
[Python/TIL] % 양식문자 사용시 주의할 점 (0) | 2024.11.16 |
---|---|
[Python] 파이썬 기본연산자 (+, -, *, /, %, **, // ) (0) | 2024.11.16 |
[Python] 간단하게 파이썬 시작하기(기본 IDLE) (2) | 2024.11.16 |