서식 지정자
%s - 문자열 서식지정자
- '%s' % '문자열'
'I am %s.' % 'ding'
'I am ding.'
%길이s - 문자열 정렬하기
- '%길이' % '문자열' - 오른쪽 정렬
- '%-길이' % '문자열 - 왼쪽 정렬
#오른쪽 정렬
'%10s' % 'ding'
' ding'
#왼쪽 정렬
'%-10s' % 'ding;
'ding '
- just 메서드와 같이 서식지정자의 길이만큼 공백을 생성후 문자열을 안쪽 공백에 할당한다.
- 길이가 문자열보다 작으면 그냥 출력된다.
%d - 정수 서식지정자
- '%d' % 정수
'I am %d years old.' % 20
'I am 20 years old.'
%길이d - 정수 정렬하기
- '%10d' % 150 - 오른쪽정렬
- '%-10d' % 150 - 왼쪽정렬
#오른쪽으로 정렬
'%10d' % 150
' 150'
#왼쪽으로 정렬
'%-10d' % 150
'150 '
%f - 실수 서식지정자
- '%f' % 숫자
'%f' % 3.5
3.500000
'%f' % 3
3.000000
# %f는 소숫점이하 기본적으로 6자리까지 표시한다.
# 오른쪽값이 6자리 이상일경우 그냥 표시된다.
- '%.자릿수f' % 숫자
'%.2f' % 2.3
'2.30'
'%.3f' % 2.3
'2.300'
%길이.자릿수f - 실수의 정렬 및 자릿수 지정
- '%길이.자릿수f' % 2.3 - 오른쪽 정렬
- '%-길이.자릿수f' % 2.3 - 왼쪽 정렬
#오른쪽 정렬
'%5.2f' % 2.3
' 2.30'
#왼쪽정렬
'%-5.2f' % 2.3
'2.30 '
길이는 소숫점과 소숫점이하 숫자를 포함한 전체 길이이다.
서식지정자 중첩 사용하기
'my birthday is %d %s' % (31,'March')
'my birthday is 31 March'
'my birthday is %d%s' % (31,'March')
'my birthday is 31March'
- 변수는 괄호 안에 컴마로 구분해서 작성
- 서식지정자의 수와 변수의 수는 같아야한다.
format 메서드
format 메서드란 {인덱스}.format(값)을 활용하는 방법으로
여기서 인덱스는 괄호안의 값의 인덱스 이다.
- {인덱스}.format(값)
'hello, {0} {2} {1}'.format('python','script',3.6)
'hello, python 3.6 script'
같은값 여러번 넣기
'{0} {0} {1} {1}'.format(ding,3)
'ding ding 3 3'
인덱스 생략하기
'hello, {} {} {}'.format('ding','3','python')
'hello, ding 3 python'
인덱스 생략시 순서대로 적용된다.
인덱스 대신 이름 지정하기
포맷 안에 값을 지정할때 이름을 입력하여 인덱스 대신 이름을 사용하여 불러낸다.
'hello, {language} {version}'.format(language='python',version=3.6)
'hello, python 3.6'
변수를 그대로 사용하여 문자열 포메팅 활용
language = 'python'
version = 3.6
f'hello, {language} {version}'
'hello, python 3.6'
#f는 format의 약자이다.
중괄호 출력하기
'{{}}'.format('python')
'{python}'
format 메서드로 문자열 정려
- '{인덱스:<길이}'.format(값)
- 부등호가 가르키는 방향으로 정렬된다.
- 부등호보단 화살표로 인식하는게 편하다.
#왼쪽 정렬
'{0:<10}'.format('ding')
'ding '
#오른쪽 정렬
'{0:>10}'.format('ding')
'ding '
#인덱스 생략도 가능하다
'{:<10}'.format('ding')
'ding '
정수 숫자 갯수 맞추기
- '%0길이d' % 숫자 -이때 0에 다른문자나 숫자는 불가능하다.
- '{인덱스:0길이d}'format(숫자)
'%03d' % 1
'001'
'{0:03d}'.format(35)
'035'
실수 숫자 갯수 맞추기
- '%0길이.자릿수f' % 숫자 -이때 0에 다른문자나 숫자는 불가능하다.
- '{인덱스:0길이.자릿수f}'format(숫자)
'%08.2f' % 3.6
'00003.60'
'{0:08.2f}'.format(150.37)
'00150.37'
채우기와 정렬 조합해서 사용하기
- '{인덱스:채울문자<길이}'.format(자료형)
#정수
'{0:2<10}'.format(15)
'1522222222'
'{0:2>10}'.format(15)
'2222222215'
#채울 문자가 2이 이기때문에 2로 채워진 모습
#실수
'{0:0>10.2f}'.format(2.3)
'0000002.30'
'{0:0<10.2f}'.format(2.3)
'2.30000000'
#채우고 나머지를 채우는거기때문에 왼쪽 정렬의 경우 왼쪽에 해당 자료형인 2.3을 채우고 오른쪽 공백을 0으로 채운모습
- 공백으로 채우고 싶다면?
'{0:<5}'.format(4)
'4 '
'{0: <5}'.format(4)
'4 '
#공백으로 냅두든 스페이스바를 한번쓰든 결과는 같다.
천만단위에 컴마 넣기
- format(숫자, ',')
- {인덱스:,}.format(숫자)
format(1493500,',')
'1,493,500'
#서식지정자와 함께 사용
'%15s' % format(1493500,',')
' 1,493,500'
#포매팅에서 활용
'{:,}'.format(1493500)
'1,493,500'
#정렬과 함께 포매팅에서 사용
'{0:>15,}'.format(1493500)
' 1,493,500'
'Python > 기초문법' 카테고리의 다른 글
(20)세트 (0) | 2022.04.04 |
---|---|
(19)딕셔너리 활용하기 (0) | 2022.04.03 |
(17) 문자열 메소드 (0) | 2022.04.01 |
(16) 2차원 리스트 사용 (0) | 2022.04.01 |
(15) 리스트 응용하기 (응용) (0) | 2022.03.27 |