티스토리 뷰

반응형

파이썬(Python)은 물론이고 모든 프로그래밍 언어에서 문자열 처리는 참 중요합니다. 파이썬은 다른 어떤 언어보다 문자열 처리가 쉬운데 그건 기본적으로 제공하는 str 문자열 객체의 메소드(함수)가 많기 때문입니다. 어떤 문자열 메소드가 있는지 알아야 나중에 직접 코딩하는 수고를 덜 수 있습니다. 여기서는 str 문자열 객체 메소드를 정리하는데 비슷한 기능들끼리 묶어서 설명합니다.


파이썬 문자열 객체 메소드(함수) 확인

파이썬 dir help 함수

dir(str) 명령은 str 문자열 객체에 포함된 메소드를 출력한다.

help() 함수로 메소드(함수) 사용법을 확인할 수 있다.


파이썬 문자열 변환(변경)

파이썬 str 문자열 메소드 함수 upper lower swapcase capitalize title

파이썬은 기본적으로 문자열변경이 불가능(immutable)하기 때문에 직접 문자열을 수정하는 방식이 아닌 변경된 다른 문자열을 리턴하는 방식을 취한다.

upper() - 대문자로 변경

lower() - 소문자로 변경

swapcase() - 대문자는 소문자로, 소문자는 대문자로 변경

capitalize() - 첫 문자를 대문자로 변경

title() - 각 단어의 첫 글자를 대문자로 변경


파이썬 str 문자열 메소드 함수 strip lstrip rstrip

strip() - 문자열 양쪽 끝을 자른다. 제거할 문자를 인자로 전달 (디폴트는 공백)

lstrip() - 문자열 왼쪽을 자름

rstrip() - 문자열 오른쪽을 자름


파이썬 str 문자열 메소드 함수 replace format join

replace() - 문자열 특정 부분을 변경 (대체)

format() - 틀(포맷)을 만들어 놓고 문자열을 생성 

join() - 리스트 같은 iterable 인자를 전달하여 문자열로 연결

(위 실행 결과를 보고 이해하시기 바랍니다.)


파이썬 문자열 정렬

파이썬 str 문자열 메소드 함수 center ljust rjust zfill

center() - 문자열 가운데 정렬. (인자로 넓이를 지정, 채울 문자 선택 가능)

ljust() - 문자열 왼쪽 정렬

rjust() - 문자열 오늘쪽 정렬


파이썬 문자열 분리(나누기)

파이썬 str 문자열 메소드 함수 partition rpartition split rsplit splitlines

partition() - 전달한 문자로 문자열을 나눔(분리), 결과는 튜플(구분자도 포함)

rpartition() - 뒤에서 부터 전달한 인자로 문자열을 나눔

split() - 전달한 문자로 문자열을 나눔, 결과는 리스트(구분자 포함 안됨)

rsplit() - 뒤에서 부터 전달한 문자로 문자열을 나눔

splitlines() - 라인 단위로 문자열을 나눔


파이썬 문자열 종류 판단

파이썬 str 문자열 isalnum isalpha isdecimal isdigit isidentifier islower isnumeric isspace istitle isupper

is로 시작하는 메소드(함수)의 결과는 bool(True, False)이다.

isdecimal, isdigit, isnumeric 메소드로 숫자인지 평가할 수 있다. (거의 비슷함)


isalnum() - 알파벳 또는 숫자인가? 

isalpha() - 알파벳인가?

isdecimal() - 숫자(decimal, 10진수)인가?

isdigit() - 숫자(digit, 10진수)인가?

isidentifier() - 식별자로 사용 가능한가?

islower() - 소문자인가? 

isnumeric() - 숫자인가? 

isspace() - 공백인가? 

istitle() - title 형식인가? (단어마다 첫 글자가 대문자인가?)

isupper() - 대문자인가?


파이썬 문자열 확인

파이썬 str 문자열 메소드 함수 count startswith endswith

count() - 특정 단어(문자열)의 수를 구함 (없으면 0을 반환)

(문자열의 글자수는 len함수를 사용하여 구한다.)

startswith() - 특정 단어로 시작하는지 확인

endswith() - 특정 단어로 끝나는지 확인


파이썬 str 문자열 메소드 함수 find rfind in index rindex

find() - 특정 단어를 찾아 인덱스를 리턴 (없으면 -1을 리턴)

rfind() - 뒤에서부터 특정 단어를 찾아 인덱스를 리턴 

in, not in을 사용하면특정 단어가 있는지 없는지 확인 가능 (True, False)

index() - find와 동일하지만 없을 때 예외를 발생시킴

rindex() - rfind와 동일하지만 없을 때 예외를 발생시킴


소스코드


'Hello Python'.upper()
'Check it OUT'.lower()
'Hello Python'.swapcase()
'hello python!'.capitalize()
'hello python'.title()

'      Oh my god!   '.strip()
'#$@%@#$^Hello Python*&^$^$%^@'.strip('!@#$%^&*()')

'      Oh my god!   '.lstrip()
'      TEL NUMBER 010-1234-5678   '.lstrip('NUMBERTEL ')

'      Oh my god!   '.rstrip()
'      TEL NUMBER 010-1234-5678   '.rstrip('1234567890- ')

'good job!'.replace('good', 'bad')

'{} is a {}'.format('Jack', 'cook')

'&'.join(['c++', 'python', 'php'])
'\n'.join(['c++', 'python', 'php'])
print('\n'.join(['c++', 'python', 'php']))

##############################

'hello python!'.center(30)
'hello python!'.center(30, '*')

'hello python!'.ljust(30)
'hello python!'.ljust(30, '*')

'hello python!'.rjust(30)
'hello python!'.rjust(30, '*')

'1234'.zfill(30)

##############################

'010-1234-5678'.partition('-')
'010-1234-5678'.rpartition('-')

'010-1234-5678'.split('-')
'010-1234-5678'.split('-', 1)

'010-1234-5678'.rsplit('-')
'010-1234-5678'.rsplit('-', 1)

"""Hello Python.
Nice to meet you!.
Good bye~~~""".splitlines()

##############################

'year2017'.isalnum()
'year2017!!!'.isalnum()

'numberOne'.isalpha()
'number1'.isalpha()

'one'.isdecimal()
'12345'.isdecimal()

'book'.isdigit()
'1004'.isdigit()

'book'.isidentifier()
'age@'.isidentifier()

'Hello Python'.islower()
'hello python'.islower()

'1234'.isnumeric()
'age20'.isnumeric()

'good job'.isspace()
' '.isspace()

'hello python'.istitle()
'Hello python'.istitle()
'Hello Python'.istitle()

'Super Man'.isupper()
'SUPER MAN'.isupper()

##############################

'how do you do. how do you do'.count('do')
'how do you do. how do you do'.count('cat')

'hello python'.startswith('go')
'hello python'.startswith('hello')

'hello python'.endswith('go')
'hello python'.endswith('python')

'I am a boy. I am a student'.find('am')
'I am a boy. I am a student'.find('you')

'I am a boy. I am a student'.rfind('am')
'I am a boy. I am a student'.rfind('you')

'am' in 'I am a boy. I am a student'
'you' in 'I am a boy. I am a student'

'I am a boy. I am a student'.index('am')
'I am a boy. I am a student'.index('you')

'I am a boy. I am a student'.rindex('am')
'I am a boy. I am a student'.rindex('you')


반응형
댓글