Python

파이썬 str 문자열 객체 메소드 함수 정리

메이커JK 2017. 2. 12. 02:25
반응형

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


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

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

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


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

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

upper() - 대문자로 변경

lower() - 소문자로 변경

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

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

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


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

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

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


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

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

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

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


파이썬 문자열 정렬

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

ljust() - 문자열 왼쪽 정렬

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


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

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

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

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

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

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


파이썬 문자열 종류 판단

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

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


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

isalpha() - 알파벳인가?

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

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

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

islower() - 소문자인가? 

isnumeric() - 숫자인가? 

isspace() - 공백인가? 

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

isupper() - 대문자인가?


파이썬 문자열 확인

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

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

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

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


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')


반응형