[python] 문자열 응용하기

anjiyoo·2024년 3월 6일

Python

목록 보기
23/41
post-thumbnail

1.문자열 조작하기

메소드설명
replace('바꿀문자열', '새문자열')문자열 안의 문자열을 다른 문자열로 바꿈
translate(테이블)문자열 안의 문자를 다른문자로 바꿈 srt.maketrans('바꿀문자', '새문자') 의 변환 테이블을 만들어야 함
split()공백을 기준으로 문자열을 분리하여 리스트로 만듦
join(리스트)구분자 문자열과 문자열 리스트(튜플)의 요소를 연결하여 문자열로 만듦
upper(), lower()upper는 문자열의 문자를 대문자로 바꾸고 lower는 소문자로 바꿈
lstrip(), rstrip(), strip()lstrip은 문자열에서 왼쪽 공백을 삭제 rstrip은 오른쪽 공백을 삭제 strip은 양쪽 공백 삭제
ljust(길이), rjust(길이), center(길이)문자열을 지정된 길이로 만든 뒤 왼쪽 / 오른쪽 / 가운데로 정렬하여 남는 공간은 공백으로 채움
zfill()지정된 길이에 맞춰서 문자열의 왼쪽에 0을 채움
find('찾을문자열')find는 왼쪽에서부터, rfind는 오른쪽에서부터 특정 문자열을 찾아서 인덱스 반환
index('찾을문자열')index는 왼쪽에서부터, rindex는 오른쪽에서부터 특정 문자열을 찾아서 인덱스 반환
count('문자열')현재 문자열에서 특정 문자열이 몇 번 나오는지 알아냄

2.문자열 바꾸기 replace()

.replace('바꿀문자열','새문자열')
"Hello, world!" ,replace('world', 'Python')

3.문자열 분리하기 split()

.split('기준문자열')
"apple pear grape pineapple orange".split()

4.구분자 문자열과 문자열 리스트 연결하기 join()

'구분자'.join()
''.join(['apple', 'pear', 'grape', 'pineapple', 'orange'])

5.소문자를 대문자로 바꾸기 upper()

'python'.upper()

6.대문자를 소문자로 바꾸기 lower()

'PYTHON'.lower()

7.공백 삭제하기 strip()

# 왼쪽 공백 삭제 lstrip
'     Python    '.lstrip()

# 오른쪽 공백 삭제 rstrip
'     Python    '.rstrip()

# 양쪽 공백 삭제 strip
'     Python    '.strip()

8.특정 문자 삭제하기 strip('삭제할문자')

# 왼쪽의 특정문자삭제
',python.'.lstrip(',.')

# 오른쪽의 특정문자삭제
',python.'.rstrip(',.')

# 양쪽의 특정문자삭제
',python.'.strip(',.')

9.문자열 정렬하기 just(길이) center(길이)

# 왼쪽 정렬
'python'.ljust(10)

# 오른쪽 정렬
'python'.rjust(10)

# 가운데 정렬
'python'.center(10)  # 문자열로 지정된 길이로 만든 뒤 가운데 정렬하며 남는 공간 공백 채움

10.메소드 체이닝

  • 메서드를 계속 연결해서 호출
'pyton'.rjust(10).upper()

10-1.문자열 왼쪽에 0 채우기 zfill(길이)

'35', .zfil(4)  # 숫자 앞에 0을 채움

10-2.문자열 위치 찾기 find('찾을문자열')

  • 특정 문자열을 찾아서 인덱스를 반환, 문자열이 없으면 -1 반환
  • 왼쪽에서부터 문자열을 찾고 같은 문자열이 여러 개 일 경우 처음 찾은 문자열의 인덱스를 반환
# 문자열 위치 찾기 .find
'apple pineapple'.find('pl')

# 오른쪽에서 문자열 위치 찾기 .rfind
'apple pineapple'.rfind('pl')

10-3.문자열 위치 찾기 index('찾을문자열')

  • 왼쪽에서부터 특정 문자열을 찾아서 인덱스 반환
  • 문자열이 없으면 에러 발생
# 문자열 위치 찾기 .index
'apple pineapple'.find('pl')

# 오른쪽에서 문자열 위치 찾기 .rfind
'apple pineapple'.rindex('pl')

10-4.문자열 개수 세기 count('문자열')

  • 현재 문자열에서 특정 문자열이 몇번 나오는지
# 특정 문자열 개수 찾기
'apple pineapple'.count('pl')

11.문자열 서식 지정자와 문자열 포매팅(format 메서드)

  • 문자열 안에서 특정 부분을 원하는 값으로 바꿀 때 포매팅 사용

11-1.서식 지정자 % 사용하기

'%s' %'문자열'
'%d' %숫자
'%f' %숫자
'%.자릿수f' %숫자
%길이s
%-길이s

'%d %s' %(숫자, '문자열')
# 문자열 넣기 %s
name = 'maria'
'I am %s.' %name

# 정수 넣기 %d
'I am %d years old.' %20

# 실수 넣기 %f
'%f' %2.3   # %f는 기본적으로 소수점 이하 6자리까지 표시
'%.3f' %23

# %길이s
'%10s' %'python' # 문자열길이를 해당 숫자만큼 만든 뒤 문자열을 넣고 오른쪽 정렬


# %-길이s
'%-10s' %'python' # 문자열길이를 해당 숫자만큼 만든 뒤 문자열을 넣고 왼쪽 정렬


#'%d %s' %(숫자, '문자열')
'Today in %d %s' %(3, 'April')

11-2.format 메서드 사용

'{}'.format(값)
'{인덱스}{인덱스}{인덱스}'.format(값, 값, 값)
'{name}{number}'.format(name=값, number=값)
'Hello, {}'.format('world!')
'Hello, {0}{2}{1}'.format('python', 'script', 3.6)
'Hello, {name}{number}'.format(name='python', number=3.6)

11-3.format 메서드로 문자열 정렬

'{인덱스:<길이}'.format(값)  # 왼쪽 정렬
'{인덱스:>길이}'.format(값)  # 오른쪽 정렬
'{0:<10}'.foramt('python')  # 왼쪽 정렬
'{0:>10}'.foramt('python')  # 오른쪽 정렬

11-4.0을 넣어서 숫자 개수 맞추기

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

# 실수
'%0개수.자릿수f' % 숫자
'{인덱스:0개수.자릿수f'}'.format(숫자)
'%03d' % 1
'{0:03d'}'.format(35)

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

11-5.금액에서 천단위로 콤마 넣기

.format(숫자,',')
format(1493500,',')
profile
기록으로 흔적을 남기는 것을 좋아합니다

0개의 댓글