[ 파이썬 문자열 관련 함수 정리 ]
* 코드는 기본적으로 <입력값 # 출력값> 으로 구성되어 있습니다.
* 아래 [더보기] 클릭 후 [Ctrl + F] 단축키를 활용하여 찾고 계신 함수 위치로 바로 가실 수 있습니다.
이스케이프 코드 1 (\ + 문자) : \n, \t, \\, \', \"
이스케이프 코드 2 (\ + 문자) : \b, \r
문자열 연산자 : + , *
자료형 변환 : str
문자열 인덱싱 & 슬라이싱
문자열 복사 : =, str, [:]
문자열 내장 함수 : len, count
문자열 내장 함수 : find, index, rfind
문자열 내장 함수 : split , join
문자열 내장 함수 : replace, upper, lower
문자열 내장 함수 : strip, lstrip, rstrip
문자열 내장 함수 : zfill, rjust, ljust, center
type(변수) : 문자열(string)
print(type('가나다')) # <class 'str'>
print(type('123')) # <class 'str'>
print(type('abc')) # <class 'str'>
print(type("abc")) # <class 'str'>
print(type('''abc''')) # <class 'str'>
print(type("""abc""")) # <class 'str'>
문자열 표현법 4종 : '문자열', "문자열", ''''문자열''', """문자열"""
txt = '큰따옴표(" ")가 포함된 문장을 쓸 때 작은따옴표 사용'
print(txt) # 큰따옴표(" ")가 포함된 문장을 쓸 때 작은따옴표 사용
txt = "작은따옴표(' ')가 포함된 문장을 쓸 때 큰따옴표 사용"
print(txt) # 작은따옴표(' ')가 포함된 문장을 쓸 때 큰따옴표 사용
txt = '''
여러줄을 입력하고 싶을 때
작은or큰 따옴표 3개 사용
'''
print(txt)
# 여러줄을 입력하고 싶을 때
# 작은or큰 따옴표 3개 사용
txt = """
위와 마찬가지로 ''' 를 사용할 경우
큰 따옴표 3개로 둘로싸면 됨
"""
print(txt)
# 위와 마찬가지로 ''' 를 사용할 경우
# 큰 따옴표 3개로 둘로싸면 됨
이스케이프 코드 1 (\ + 문자) : \n, \t, \\, \', \"
- \n : 줄바꿈
- \t : 탭간격
- \\, \', \" : 문자 표현
print('abc\ndef')
# abc
# def
print('abc\tdef') # abc def
print('abc\\def') # abc\def
print('abc\'def') # abc'def
print('abc\"def') # abc"def
이스케이프 코드 2 (\ + 문자) : \b, \r
- \b : 백스페이스
- \r : 캐리지 리턴
\f : 폼피드\v : 수직 탭\000: 널
print('가나다\b라마바') # 가나라마바
print('가나다\r라마바') # 라마바
문자열 연산자 : + , *
- 문자열 + 문자열 : 문자열 간 연결
- 문자열 * 정수 : 정수만큼 문자열 반복
a, b = '안녕', '하세요'
print( a + b ) # 안녕하세요
print( a * 3 ) # 안녕안녕안녕
자료형 변환 : str
- str(값) : 값(실수, 정수, bool 등)을 문자열로 변환함
a, b, c = '안녕', 123, True
print(type(a)) # <class 'str'>
print(type(b)) # <class 'int'>
print(type(c)) # <class 'bool'>
print(type(str(a))) # <class 'str'>
print(type(str(b))) # <class 'str'>
print(type(str(c))) # <class 'str'>
문자열 인덱싱 & 슬라이싱
- 인덱싱 : 변수[인덱스]
- 슬라이싱 : 변수[시작인덱스 : 종료인덱스] = a[x : x+3] = a[x], a[x+1], a[x+2]
a = 'abcd efg'
print(a[0], a[1], a[2], a[-2], a[-1]) # a b c f g
print(a[1:5]) # bcd
print(a[-3:-1]) # ef
print(a[:]) # abcd efg
print(a[3:]) # d efg
print(a[:3]) # print(a[:3]) # abc
문자열 복사 : =, str, [:]
- 문자열2 = 문자열1 : 문자열1 값을 문자열2 값에 저장함, 두 변수의 메모리 주소가 동일함
- 문자열2 = str(문자열1) : 문자열1 값을 문자열2 값에 저장함, 두 변수의 메모리 주소가 동일함
- 문자열2 = 문자열1[:] : 문자열1 값을 문자열2 값에 저장함, 두 변수의 메모리 주소가 동일함
a = 'abcdefg'
b = a
print(id(a), id(b)) # 2485419591976 2485419591976
print(b is a) # True
a = 'abcdefg'
c = str(a)
print(id(a), id(c)) # 2485419591976 2485419591976
print(c is a) # True
a = 'abcdefg'
d = a[:]
print(id(a), id(d)) # 2485419591976 2485419591976
print(d is a) # True
문자열 내장 함수 : len, count
- len(문자열) : 문자열의 길이를 반환함
- 문자열.count(찾을 값) : 문자열 내에서 찾을 값의 개수를 반환함
a = '1234567'
print(len(a)) # 7
a = 'aabbbccccc'
print(a.count('a')) # 2
문자열 내장 함수 : find, index, rfind
- 문자열.find(찾을 값, 시작인덱스, 종료인덱스) : 문자열 시작~종료 인덱스 사이에서 찾을 값이 처음 나타나는 위치를 반환함
- 문자열.index(찾을 값, 시작인덱스, 종료인덱스) : 문자열 시작~종료 인덱스 사이에서 찾을 값이 처음 나타나는 위치를 반환함
- find , index 공통점 : 문자열 내에서 찾을 값이 처음 나타나는 위치를 탐색함
- find , index 차이점 : 문자열 내 찾을 값가 없는 경우 find는 -1 출력, index는 AttributeError 발생
- 문자열.rfind(찾을 값) : 문자열 끝나는 위치부터 시작하여 찾을 문자열이 처음 나타나는 위치를 반환함
a = 'abcdefgabcdefg'
print(a.find('c')) # 2
print(a.find('cde')) # 2
print(a.find('c', 0, 5)) # 2
print(a.find('z')) # -1
print(a.find('cee')) # -1
print(a.find('c', 3, 5)) # -1
a = 'abcdefgabcdefg'
print(a.index('c')) # 2
print(a.index('cde')) # 2
print(a.index('c', 0, 5)) # 2
print(a.index('z')) # ValueError: substring not found
print(a.index('cee')) # ValueError: substring not found
print(a.index('c', 3, 5)) # ValueError: substring not found
a = 'abcdefgabcdefg'
print(a.rfind('c')) # 9
문자열 내장 함수 : split , join
- 문자열.split(구분자) : 문자열을 구분자를 기준으로 나눔
- 구분자.join(문자열 or 리스트) : 문자열 사이에 구분자를 추가함
a = 'ab,c d,e fgh'
print(a.split()) # ['ab,c', 'd,e', 'fgh']
print(a.split(',')) # ['ab', 'c d', 'e fgh']
print(a.split('e')) # ['ab,c d,', ' fgh']
a = 'ab cde'
print('/'.join(a)) # a/b/ /c/d/e
a = ['a', 'b', 'c', 'd', 'e']
print(','.join(a)) # a,b,c,d,e
문자열 내장 함수 : replace, upper, lower
- 문자열.replace(기존 값, 변경할 값, 변경횟수) : 변경횟수 만큼 기존 값을 변경할 값으로 대체함
- 문자열.upper() : 알파벳 소문자를 대문자로 변환하여 반환함
- 문자열.lower() : 알파벳 대문자를 소문자로 변환하여 반환함
- 문자열.isupper() : 문자열 전체가 대문자인지 판정함
- 문자열.islower() : 문자열 전체가 소문자인지 판정함
a = 'a,b,c,d,e'
print(a.replace(',', '/')) # a/b/c/d/e
print(a.replace(',', '/', 1)) # a/b,c,d,e
print(a.replace(',', '/', 2)) # a/b/c,d,e
a = 'a,b,c,D,E'
print(a.upper()) # A,B,C,D,E
print(a.lower()) # a,b,c,d,e
print('ABC'.isupper()) # True
print('abc'.isupper()) # False
print('Abc'.isupper()) # False
print('abc'.islower()) # True
print('ABC'.islower()) # False
print('Abc'.islower()) # False
문자열 내장 함수 : strip, lstrip, rstrip
- 문자열.strip(제거할 값) : 양쪽 끝에서 특정 값을 제거함
- 문자열.lstrip(제거할 값) : 왼쪽left) 끝에서 특정 값을 제거함
- 문자열.rstrip(제거할 값) : 오른쪽(right) 끝에서 특정 값을 제거함
a = ' abc '
print(a.strip()) # 'abc'
print(a.lstrip()) # 'abc '
print(a.rstrip()) # ' abc'
a = '*****abc***'
print(a.strip('*')) # abc
print(a.lstrip('*')) # abc***
print(a.rstrip('*')) # *****abc
a = '12321abc111'
print(a.strip('123')) # abc
print(a.lstrip('123')) # abc111
print(a.rstrip('123')) # 12321abc
문자열 내장 함수 : zfill, rjust, ljust, center
- 문자열.zfill(정수) : 문자열의 길이가 지정된 정수가 될 때까지 문자열 왼쪽에 0을 채움
- 문자열.rjust(정수, 원하는 값) : 문자열의 길이가 지정된 정수가 될 때까지 문자열 왼쪽에 원하는 값을 채움
- 문자열.ljust(정수, 원하는 값) : 문자열의 길이가 지정된 정수가 될 때까지 문자열 오른쪽에 원하는 값을 채움
- 문자열.center(정수, 원하는 값) : 문자열의 길이가 지정된 정수가 될 때까지 문자열 양쪽에 원하는 값을 채움
a = 'abc'
print(a.zfill(10)) # 0000000abc
print(a.zfill(3)) # abc
a = 'abc'
print(a.rjust(10, '*')) # *******abc
print(a.ljust(10, '*')) # abc*******
print(a.center(10, '*')) # **abc****
'개발 > Python' 카테고리의 다른 글
[파이썬, Python] 딕셔너리 관련 함수 총정리 (0) | 2022.03.17 |
---|---|
[파이썬, Python] 세트 관련 함수 총정리 (0) | 2022.03.15 |
[파이썬, Python] 튜플 관련 함수 총정리 (0) | 2022.03.13 |
[파이썬, Python] 리스트 관련 함수 총정리 (0) | 2022.03.13 |
[파이썬, Python] 숫자형 관련 함수 총정리 (0) | 2022.03.08 |