:: 문자열 포매팅 ::
문자열에다 바뀌지 않거나 바뀔 수도 있는 어떤 값을 삽입해 넣고 싶을 때 사용하는 방법이다.
1. 정수 대입 (%d)
>>> "지금은 %d시 입니다." % 3 '지금은 3시 입니다.' |
2개 이상의 값 넣기
>>> "지금은 %d시 %d분 입니다." %(3, 15) '지금은 3시 15분 입니다.' |
2가지 이상의 값을 넣기 위해서는 % 뒤 괄호 안에 ' , ' 로 구분해 넣어주면 된다.
2. 문자열 대입 (%s)
>>> "지금은 %s시 %s분 입니다." %("다섯","이십") '지금은 다섯시 이십분 입니다.' |
%s 는 무슨 값이 들어오든 '문자열'로 변환해 보여주기 때문에 어떤 형태든 넣을 수 있다.
3. 변수 대입
>>> number = 8 >>> string = "삼십" >>> "현재 시간은 %d시 %s분 입니다." %(number, string) ' 현재 시간은 8시 삼십분 입니다.' |
4. 문자열 안에 문자 '%' 넣기 (%%)
>>> "확률은 %d%% 입니다." % 99 '확률은 99% 입니다.' |
문자열 안에서 %를 쓰려면 두 번 써서 %%모양으로 넣어주어야 한다.
포맷코드에 숫자를 넣어 쓰기
포맷코드 사이에 숫자를 넣어 쓰면 다른 방법으로 유용하게 사용할 수도 있다.
1. 정렬, 공백
>>> "%20s" % "right" ' right' |
문자열 포맷코드인 %s 사이에 숫자 20을 넣고 문자 "right"를 대입했다.
┌ | ─ | ─ | ─ | ─ | ─ | ─ | 공 | 백 | ─ | ─ | ─ | ─ | ─ | ┐ | ┌ | 문 | ─ | 자 | ┐ |
r | i | g | h | t | |||||||||||||||
└ | ─ | ─ | ─ | ─ | ─ | ─ | ─ | 총 | 2 | 0 | 칸 | ─ | ─ | ─ | ─ | ─ | ─ | ─ | ┘ |
이렇게 총길이가 20칸인 문자열 공간에서 대입된 문자는 오른쪽으로 정렬한 후 나머지는 공백으로 채운다.
>>> "%-20s" % "left" 'left ' |
마찬가지로 %s사이에 음수 -20을 넣고 문자 "left"를 대입했다.
┌ | 문 | 자 | ┐ | ┌ | ─ | ─ | ─ | ─ | ─ | ─ | 공 | 백 | ─ | ─ | ─ | ─ | ─ | ─ | ┐ |
l | e | f | t | ||||||||||||||||
└ | ─ | ─ | ─ | ─ | ─ | ─ | ─ | 총 | 2 | 0 | 칸 | ─ | ─ | ─ | ─ | ─ | ─ | ─ | ┘ |
음수를 넣으면 20칸 짜리 문자열 공간에서 문자는 왼쪽으로 정렬 한 후 나머지는 공백을 준다.
2. 소숫점 (%f)
숫자 8.123456789를 소수점 4자리 수까지만 나타내고 싶으면 어떻게 해야 할까?
>>> "%20.4f" % 8.123456789 ' 8.1235' |
포맷코드 %f 사이에 20.4를 넣고, 8.123456789를 대입했다.
' . '은 소수점을 말하고 뒤엔 그 뒤로 나올 숫자의 개수를 적는다.
┌ | ─ | ─ | ─ | ─ | ─ | ─ | 공 | 백 | ─ | ─ | ─ | ─ | ┐ | ┌ | ─ | 숫 | 자 | ─ | ┐ |
8 | . | 1 | 2 | 3 | 4 | ||||||||||||||
└ | ─ | ─ | ─ | ─ | ─ | ─ | ─ | 총 | 2 | 0 | 칸 | ─ | ─ | ─ | ─ | ─ | ─ | ─ | ┘ |
아까 사용했던 정렬과 같이 총 20칸 중에서 숫자를 우측으로 정렬하고 .4만큼, 즉 소수점 4 자릿수까지 가져온다.
>>> "%-20.4f" % 8.123456789 '8.1235 ' |
┌ | ─ | 숫 | 자 | ─ | ┐ | ┌ | ─ | ─ | ─ | ─ | 공 | 백 | ─ | ─ | ─ | ─ | ─ | ─ | ┐ |
8 | . | 1 | 2 | 3 | 4 | ||||||||||||||
└ | ─ | ─ | ─ | ─ | ─ | ─ | ─ | 총 | 2 | 0 | 칸 | ─ | ─ | ─ | ─ | ─ | ─ | ─ | ┘ |
음수 20.4를 넣으면 결과값은 똑같이 8.1234가 나오지만 좌측 정렬이 된다.
'IT > 파이썬3 공부' 카테고리의 다른 글
[파이썬 기초] 리스트 -2 연산과 함수사용 (0) | 2020.05.01 |
---|---|
[파이썬 기초] 리스트 -1 (자료형) 인덱싱과 슬라이싱 (0) | 2020.04.30 |
[파이썬 기초] 문자열 -3 (포매팅 2) (0) | 2020.04.28 |
[파이썬 기초] 문자열 -2 (인덱싱과 슬라이싱) (0) | 2020.04.26 |
[파이썬 기초] 문자열 -1 (자료형) (0) | 2020.04.22 |
최근댓글