파이썬 문자열 조작, 서식 지정자, 포매팅

Yeonu·2020년 11월 20일
0

Python 이론

목록 보기
11/30
post-thumbnail

문자열 바꾸기

replace('바꿀문자열', '새문자열')

>>> s = 'Hello, world!'
>>> s = s.replace('world!', 'Python')
>>> s # 할당해야지만 바뀐 결과가 유지된다.
'Hello, Python'

문자 바꾸기

str.maketrans('바꿀문자', '새문자')와 translate(테이블)

>>> table = str.maketrans('aeiou', '12345') #a를 1 e를 2 ... 로 바꿈
>>> 'apple'.translate(table)
'1ppl2'

문자열 분리하기

split('기준문자열')

구분자 문자열과 문자열 리스트 연결하기

join(리스트)

>>> '-'.join(['apple', 'pear', 'grape', 'pineapple', 'orange'])
# '' 안에 문자열 사이에 들어올 문자 지정 가능
'apple-pear-grape-pineapple-orange'

소문자를 대문자로

upper()

대문자를 소문자로

lower()

양쪽 공백 삭제하기

strip()
왼쪽 공백 삭제 : lstrip() 오른쪽 공백 삭제 : rstrip()

양쪽 특정문자 삭제하기

strip('특정문자')
왼쪽, 오른쪽 특정문자 삭제는 방법 동일

문자열 왼쪽 정렬하기

ljust(길이)

 >>> 'python'.ljust(10)
 'python    '  # 빈 칸만큼 공백으로 채워진다.

오른쪽 정렬하기 : rjust(길이)

가운데 정렬하기

center(길이)

문자열 왼쪽에 0채우기

zfill(길이) - zero fill을 의미

문자열 위치 찾기

find('찾을문자열') 왼쪽에서부터 찾는다.
오른쪽부터 찾기는 rfind('찾을문자열')

>>> 'apple pineapple'.find('pl')
2
>>> 'apple pineapple'.find('xy')
-1
#없는 문자일 경우 -1 반환

index('찾을문자열')도 왼쪽에서부터 찾아 인덱스를 반환한다. rindex('찾을문자열)은 오른쪽부터 찾는다.

문자열 개수 세기

count('문자열')

서식 지정자(format specifier)로 문자열 넣기

'%s' % '문자열

>>> 'I am %s.' % 'james'
'I am james.

#변수 지정 가능
>>> name = 'maria'
>>> 'I am %s.' % name
'I am maria.'

서식 지정자로 숫자 넣기

'%d' % 숫자
%d는 10진 정수 decimal integer의 d이다.

>>> 'I am %d years old.' % 20
'I am 20 years old.'

서식 지정자로 소수점 표현하기

'%f' % 숫자, (소수점 이하 자리 수 지정 : '%.자릿수f' % 숫자)
%f는 기본적으로 소수점 이하 6자리까지 표시하므로 2.3은 2.300000으로 표시된다.

>>> '%f' % 2.3
'2.300000'

>>> '%.2f' % 2.3
'2.30'
>>> '%.3f' % 2.3
'2.300'

서식 지정자로 문자열 정렬하기

%길이s (오른쪽으로 정렬한다.) 왼쪽 정렬 : %-길이s

>>> '%10s' % 'python'
'    python'

자릿수가 다른 숫자 출력하기

# %길이d
>> '%10d' % 150
'       150'
>> '%10d' % 15000
'     15000'
# %길이.자릿수f
>> '%10.2f' % 2.3
'      2.30'
>> '%10.2f' % 2000.3
'   2000.30'

서식 지정자로 문자열 안에 값 여러 개 넣기

'%d %s' % (숫자, '문자열')

>>> 'Today is %d %s.' % (3, 'April')
'Today is 3 April.'

format 메서드 사용하기

{}안에 인덱스를 지정해 순서, 중복 출력 등을 정할 수 있다.

>>> 'Hello, {} {} {}'.format('Python', 'Script', 3.6)
'Hello, Python Script 3.6'

인덱스 대신 이름을 지정할 수도 있다.

>>> 'Hello, {language} {version}'.format(language='Python', version=3.6)
'Hello, Python 3.6'

문자열 포매팅에 변수를 그대로 사용할 수 있다. 문자열 앞에 f를 붙인다.

>> language = 'Python'
>>> version = 3.6
>>> f'Hello, {language} {version}'
'Hello, Python 3.6'

format메서드로 문자열을 정렬하기

'{인덱스:<길이}'.format(값)
< 왼쪽 정렬, > 오른쪽 정렬

>>> '{0:<10}'.format('python') # 인덱스0 생략 가능
'python    '

숫자 개수 맞추기

'%0개수d' % 숫자, '{인덱스:0개수d'}'.format(숫자)

>>> '%03d' % 1
'001'
>>> '{0:03d}'.format(35)
'035'

실수도 맞출 수 있다. 소수점 이하 자릿수를 지정하고 싶으면 .뒤에 지정한다.

>>> '%08.2f' % 3.6
'00003.60'
>>> '{0:08.2f}'.format(150.37)
'00150.37'

채우기와 정렬을 조합해서 사용하기

>>> '{0: >10}'.format(15)    # 남는 공간을 공백으로 채움
'        15'
>>> '{0:>10}'.format(15)     # 채우기 부분을 생략하면 공백이 들어감
'        15'
>>> '{0:x>10}'.format(15)    # 남는 공간을 문자 x로 채움
'xxxxxxxx15'

0개의 댓글