Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- wetube
- Class
- 채팅
- Vue
- docker
- socket io
- lambda
- node
- SSA
- 중급파이썬
- TypeScript
- merge
- 카톡
- 튜플
- S3
- crud
- pandas
- RDS
- 파이썬
- flask
- SAA
- react
- MongoDB
- dict
- NeXT
- AWS
- EC2
- async
- Props
- git
Archives
- Today
- Total
초보 개발자
22강 메소드 기반 문자열 조합 본문
21강에서 설명한 것의 2번째 방법이다.
String formatting method calls '메소드 호출'을 통해 문자열 조합하기
'{0}...{1}...{2}'.format('Robot',125,'Box')
'Robot...125...Box'
문자열 안에 있는 {0}는 format 메소드의 첫 번째 전달인자로 대체된다. 그리고 {1}은 두 번째 전달 인자로 대체되고 {2}는 세 번째 전달 인자로 대체되어 새 문자열이 생성된다.
'{2}...{1}...{0}'.format('Robot',125,'Box')
'Box...125...Robot'
0,1,2의 순서를 이렇게 바꾸어도 상관없다.
그리고 0,1,2 이 숫자들은 생략해도 된다. 이 때에는 순서대로대체 된다.
숫자 말고 이름을 적어주어도 된다.
'{toy}...{num}...{item}'.format(toy='Robot',num=125,item='Box')
'Robot...125...Box'
my = ['Robot', 125, 'Box']
'{}...{}...{}'.format(*my) 리스트를 언팩킹해도 된다.
'Robot...125...Box'
#위의 문장은 '{0}..{1}..{2}'.format(my[0],my[1],my[2])와 같다
my = ['Box', (24,31)]
'{0[0]}..{0[1]}..{1[0]}..{1[1]}'.format(*my) {0}은 'Box'이고 {1}은 (24,31)이다.
'B..o..24..31'
# {0}은 'Box'이므로 {0[0]}은 'B', {0[1]}은 'o'
# {1}은 (24,31)이므로 {1[0]}은 24, {1[1]}은 31
d = {'toy':'Robot', 'price':3500}
'toy = {0[toy]}, price = {0[price]}'.format(d)
'toy = Robot, price = 3500'
# {0}은 {'toy':'Robot', 'price':3500}이므로 {0[toy]}는 'Robot'이다.
# {0}은 {'toy':'Robot', 'price':3500}이므로 {0[price]}는 3500'이다.
[보다 세밀한 문자열 구성 지정]
앞서 flags, width, .precision를 다룬 적이 있다.
메서드 기반에서도 이러한 일이 가능하다.
'{0}.format(3.14)
'3.14'
# 위와 같이 {0}으로 3.14를 출력하는 경우, 파이썬이 실수라고 판단 및 출력을 한다.
'{0:f}'.format(3.14)
'3.140000'
# 위와 같이 {0:f}으로 3.14 출력하는 경우, 프로그래머가 실수라고 직접 알려주는 것임
# {0:f}와 같이 f를 붙여서 실수를 출력하면 정밀도가 소수 이하 6자리로 설정됨
:f를 붙여주면 된다.
전에는 %f 사이에 옵션을 넣어주었지만 지금은 :f사이에 옵션을 넣어준다.
'%.4f' % 3.14
'3.1400'
'{0:.4f}'.format(3.14)
'3.1400'
'%9.4f' % 3.14
' 3.1400'
'{0:9.4f}'.format(3.14)
' 3.1400'
'{0:<10.4f}'.format(3.14) # <은 왼쪽으로 붙이라는 의미
'3.1400 '
'{0:>10.4f}'.format(3.14) # >은 오른쪽으로 붙이라는 의미
' 3.1400'
'{0:^10.4f}'.format(3.14) # ^은 중앙에 위치시키라는 의미
' 3.1400 '
'%+d, %+d' % (5, -5)
'+5, -5'
'{0:+d}, {1:+d}'.format(5,-5)
'+5 -5'
#위의 문장에서 d는 생략가능 즉 '{0:+}, {1:+}'.format(5,-5)와 같음
#그리고 순서대로 등장하니 0과 1도 생략가능 즉, '{:+}, {:+}'.format(5,-5)와 같음
'{0:*<10.4f}'.format(3.14) # :와 ^사이 등장한 *로 빈공간 채움
'**3.1400**'
'{0:+<10}'.format(7) # :와 ^사이 등장한 +로 빈공간 채움
'7+++++++++'
'{0:^^10}'.format(hi) # :와 ^사이 등장한 ^로 빈공간 채움
'^^^^hi^^^^'
오른쪽 부터 하나씩 끊어서 해석해보자
'Python > 윤성우 열혈 파이썬' 카테고리의 다른 글
24강 상속 (0) | 2022.01.18 |
---|---|
23강 클래스와 객체의 본질 (0) | 2022.01.18 |
21강 표현식 기반 문자열 조합 (0) | 2022.01.17 |
20강 enumerate와 문자열 비교 (0) | 2022.01.17 |
19강 정렬 기술 sort, sorted, key (0) | 2022.01.17 |