21. 표현식 기반 문자열 조합
문자열 조합
s = 'I am ' + str(7) + ' years old'
print(s) # 'I am 7 years old'
- String formatting expressions : '표현식'을 기반으로 문자열 조합
- '_ %s%s __' % (value, value) 스타일 문자열 조합
- String formatting method calls : '메소드 호출'을 통해 문자열 좋밯
- '_ {}{} __'.format(value, value) 스타일 문자열 조합
표현식 기반 문자열 조합
s = 'My name is %s' % 'Yoon'
s = 'My friend %s is %d years old and %fcm tall.' % ('Jung', 22, 178.5)
friends = [('Jung', 22), ('Hong', 23), ('Park', 24)]
for f in friends:
print('My friend %s is %d years old' % (f[0], f[1]))
- %s : 문자열
- %d : 정수(10진수)
- %f : 실수
- 기본적으로 타입 지시자와 값은 일치해야 한다
- %s가 등장하면 문자열 이외에 원하는 것 대부분을 가져다 놓을 수 있다
- 파이썬이 형 변환을 지원하기 때문
튜플 말고 딕셔너리로 출력 대상 지정하기
s = "%(name)s : %(age)d" % {'name': 'Yoon', 'age': 22}
- 이름을 통해서 삽입할 내용을 결정할 수 있다
- %(name)s : 'name의 값인 문자열'을 이 위치에 가져다 놔라
- %(age)d : 'age의 값인 정수(%d)'를 이 위치에 가져다 놔라
- 딕셔너리의 구성은 상관이 없다. 즉, name과 age의 등장 순서가 바뀌어도 괜찮다
보다 세밀한 문자열 조합 지정
'height: %f' % 3.14
# 'height: 3.140000'
'height: %.3f' % 3.14
# 'height: 3.140'
'height: %.2f' % 3.14
# 'height: 3.14'
'height: %7.2f' % 3.14
# 'height: 3.14'
'height: %10.2f' % 3.14
# 'height: 3.14'
'height: %07.2f' % 3.14
# 'height: 0003.14'
'height: %010.2f' % 3.14
# 'height: 0000003.14'
'height: %-7.2f' % 3.14
# 'height: 3.14 '
'height: %-10.2f' % 3.14
# 'height: 3.14 '
n = 3
'num: %+d' % n
# 'num: +3'
n = -1
'num: %+d' % n
# 'num: -1'
- %[flags][width][.precision]f
- flags : - 또는 0 또는 +를 넣어서 특별한 신호를 줌
- : 부호 정보도 함께 출력
- 0 : 빈 공간을 0으로 채움
- : 공간이 남을 때는 왼쪽으로 붙여서 출력
- width : 폭, 어느 정도 넓이를 확보하고 출력할지 결정
- .precision : 정밀도, 소수 이하 몇째 자리까지 출력할지 결정
딕셔너리로 출력 대상 지정
'%(h)s: %(v)-+10.3f입니다.' % {'h': 'height', 'v': 3.14}
# 'height: +3.140 입니다'
'프로그래머 > Python' 카테고리의 다른 글
[윤성우의 열혈 파이썬 중급편] 23. 클래스와 객체의 본질 (0) | 2020.12.24 |
---|---|
[윤성우의 열혈 파이썬 중급편] 22. 메소드 기반 문자열 조합 (0) | 2020.12.24 |
[윤성우의 열혈 파이썬 중급편] 20. enumerate와 문자열 비교 (0) | 2020.12.24 |
[윤성우의 열혈 파이썬 중급편] 19. 정렬 기술 (0) | 2020.12.24 |
[윤성우의 열혈 파이썬 중급편] 18. 자료형 분류와 set & frozenset (0) | 2020.12.24 |