파이썬 문자열 포맷팅
파이썬에서 문자열 포맷팅하는 방법으로는 %
, format
, f문자열
이 있다.
%
를 사용한 문자열 포맷팅
문자열 포맷팅이랑 문자열안에 특정한 값을 삽입하는 방법을 말한다.
- 숫자 대입
숫자를 대입하고 싶은 곳에%d
를 입력한 후 삽입할 숫자는 문자열 가장 뒤에% + 숫자
를 쓴다.
str = 'i am %d years old' % 29
print(str)
'i am 29 years old'
- 문자 대입
숫자와 마찬가지이며 문자의 경우%s
를 사용한다.
str = 'i am %s years old' % 'twenty-nine'
print(str)
'i am twenty-nine years old'
- 변수 대입
변수를 사용하여 대입하며, 변수 타입에 맞춰 문자열 포맷 코드를 작성해주면 된다.
number = 29
str = 'i am %d years old' % number
print(str)
'i am 29 years old'
- 여러 개 대입
문자열 안에 여러 개의 값을 삽입하고 싶은 경우, 각각의 변수를%
뒤에 괄호를 하고 내부에서 콤마(,
)로 구분한다.
number = 29
string = 'handsome'
str = 'i am %d years old and very %s' % (number, string)
print(str)
'i am 29 years old and very handsome'
코드 | 설명 |
---|---|
%s | 문자열 |
%c | 문자 1개 |
%d | 정수 |
%f | 부동소수 |
%o | 8진수 |
%x | 16진수 |
%% | % 문자 |
특이하게 %s
는 자동으로 % 뒤에 있는 값을 문자열로 바꾸기 때문에 어떤 형태의 값이든 변환해 넣을 수 있다.
str = 'i have %s handphone' % 1
print(str)
str = 'rate is %s' % 3.24
print(str)
str = 'Error is %d%%.' % 98
print(str)
'i have 1 handphone'
'rate is 3.24'
'Error is 98%.'
문자열 포맷팅 응용
- 정렬과 공백
문자열 포맷팅 사이의 숫자는 전체 길이를 의미하며 나머지 공간은 공백처리 한다. - 는 오른쪽 정렬, -는 왼쪽 정렬을 의미한다.
str = '%10s' % 'hi' # 전체 길이가 10개인 공간에서 오른쪽 정렬 후 공백0
print(str)
str ='%-10s' % 'hi' # 전체 길이가 10개인 공간에서 왼쪽 정렬 후 공백
print(str)
' hi'
'hi '
- 소수점
.
앞의 숫자는 전체 숫자의 개수를 의미하며 나머지 공간은 공백처리 한다.(0이면 공백 미존재).
의 의미는 소수점 포인트를 말하며 그 뒤의 숫자는 소수점 뒤에 나올 숫자의 개수를 의미한다. - 는 오른쪽 정렬, -는 왼쪽 정렬을 의미한다.
str = '%0.4f' % 3.245546
print(str)
str = '%10.4f' % 3.245546 # 전체 길이가 10개인 공간에서 소수점 4자리까지 오른쪽 정렬 후 공백
print(str)
str = '%-10.4f' % 3.245546 # 전체 길이가 10개인 공간에서 소수점 4자리까지 왼쪽 정렬 후 공백
print(str)
'3.2455'
' 3.2455'
'3.2455 '
format 함수를 사용한 포맷팅
숫자를 대입하고 싶은 곳에 {}
를 입력한 후 삽입할 숫자는 문자열 가장 뒤에 .format()
에 인자로 넣는다.
- 숫자 대입
str = 'i am {0} years old'.format(29)
print(str)
'i am 29 years old'
- 문자 대입
str = 'i am {0} years old'.format('twenty-nine')
print(str)
'i am twenty-nine years old'
- 변수 대입
number = 29
str = 'i am {0} years old'.format(number)
print(str)
'i am 29 years old'
- 여러 개 대입
문자열 안에 여러 개의 값을 삽입하고 싶은 경우, 변수를 넣을 자리에{0}, {1}, {2} ..
순서로 넣고.format()
함수 인자를 콤마(,
)로 구분한다.
number = 29
string = 'handsome'
str = 'i am {0} years old and very {1}'.format(number, string)
print(str)
'i am 29 years old and very handsome'
숫자 대신 변수를 넣고 .format()
의 인자로 변수와 값은 함께 넣어도 된다.
str = 'i am {number} years old and very {string}'.format(number=29, string='handsome')
print(str)
'i am 29 years old and very handsome'
- 정렬과 공백
기호(<, >, ^
) 뒤에 있는 숫자는 전체 길이를 의미하면 나머지 공간은 공백처리 한다.:
와 기호(<, >, ^
) 사이에 문자가 있다면 해당 문자로 공백을 채운다.>
는 왼쪽 정렬,^
는 가운데 정렬,<
는 오른쪽 정렬을 의미한다.
str = '{0:<10}'.format("hi")
print(str)
str = '{0:>10}'.format("hi")
print(str)
str = '{0:^10}'.format("hi")
print(str)
str = '{0:-^10}'.format("hi")
print(str)
str = '{0:->10}'.format("hi")
print(str)
'hi '
' hi'
' hi '
'----hi----'
'--------hi'
- 소수점
.
앞의 숫자는 전체 숫자의 개수를 의미하며 나머지 공간은 공백처리 한다.(0이면 공백 미존재).
의 의미는 소수점 포인트를 말하며 그 뒤의 숫자는 소수점 뒤에 나올 숫자의 개수를 의미한다.>
는 왼쪽 정렬,^
는 가운데 정렬,<
는 오른쪽 정렬을 의미한다.
str = '{0:0.4f}'.format(3.2513587)
print(str)
str = '{0:>10.4f}'.format(3.2513587)
print(str)
str = '{0:<10.4f}'.format(3.2513587)
print(str)
str = '{{ and }}'.format()
print(str)
'3.2514'
' 3.2514'
'3.2514 '
'{ and }'
f문자열 포매팅
문자열 앞에 f
를 사용하며 대괄호({}
) 안에 변수를 넣어준다.
대괄호({}
) 안에는 변수나 숫자, 문자열을 넣을 수 있다.
name = '양상길'
age = 29
str = f'나의 이름은 {name}이고 나이는 {age} 입니다.'
print(str)
age = 29
str = f'나는 내년에 {age+1}살이 된다'
print(str)
'나의 이름은 양상길이고 나이는 29 입니다.'
'나는 내년에 30살이 된다'
- 정렬과 공백
:
뒤에 있는 숫자는 전체 숫자의 개수를 의미하며 나머지 공간은 공백처리 한다.:
와 기호(<, >, ^
) 사이에 문자가 있다면 해당 문자로 공백을 채운다.>
는 왼쪽 정렬,^
는 가운데 정렬,<
는 오른쪽 정렬을 의미한다.(생략 시 왼쪽 정렬)
name = '양상길'
str = f'{name:10}'
print(str)
str = f'{"hi":<10}'
print(str)
str = f'{"hi":>10}'
print(str)
str = f'{"hi":^10}'
print(str)
str = f'{"hi":@<10}'
print(str)
'양상길 '
'hi '
' hi'
' hi '
'hi@@@@@@@@'
- 소수점
.
앞의 숫자는 전체 숫자의 개수를 의미하며 나머지 공간은 공백처리 한다.(0이면 공백 미존재).
의 의미는 소수점 포인트를 말하며 그 뒤의 숫자는 소수점 뒤에 나올 숫자의 개수를 의미한다.>
는 왼쪽 정렬,^
는 가운데 정렬,<
는 오른쪽 정렬을 의미한다.
y = 3.42134234
str = f'{y:0.4f}'
print(str)
str = f'{3.4213585:10.4f}'
print(str)
str = f'{45.551:<9.2f}'
print(str)
'3.4213'
' 3.4214'
'45.55 '
{ }
를 표현하기 위해서는 다음과 같이 두개를 사용해야 한다.
str = f'{{ }}'
print(str)
'{ }'
반응형
'Python' 카테고리의 다른 글
[Python] 리스트 (31) | 2023.12.28 |
---|---|
[Python] 문자열 내장함수 (33) | 2023.12.27 |
[Python] 문자열 (36) | 2023.12.22 |
[Python] 연산자 (23) | 2023.12.21 |
[Python] 변수 및 기본 자료형 (46) | 2023.12.20 |
댓글