[:] : 처음부터 끝까지
[start:] : start부터 끝까지
[:end] : 처음부터 end-1까지
[start:end] : start부터 end-1까지
[start:end:step] : start부터 end-1까지 step만큼 문자를 건너뛰면서
>>> s1 = “this is python string”
>>> s1[:] # 처음부터 끝까지
‘this is python string”
>>> s1[8:] # 8번째 문자부터 끝까지
‘python string’
>>> s1[:7] # 처음부터 6번째 문자까지
‘this is’
>>> s1[8:14] # 8번째 문자부터 13번째 문자까지
‘python’
>>> s1[-6:] # 뒤에서 6번째 문자부터 끝까지
‘string’
>>> s1[:-7] # 처음부터 뒤에서 8번째 문자까지
‘this is python’
>>> s1[0:len(s1):2] # 처음부터 끝까지 2개씩 건너뛰기
‘ti spto tig’
: 문자열 길이 구하기
>>> s1 = “this is python string”
>>> len(s1)
21
: 문자열 내 문자의 최소값/최대값 반환
>>> s1 = “abcde”
>>> s2 = “12345”
>>> min(s1)
‘a’
>>> max(s1)
‘e’
>>> min(s2)
‘1’
>>> max(s2)
‘5’
: 문자열이 나온 횟수 (시작지점과 끝지점 지정 가능)
>>> s1 = “this is python string”
>>> s1.count(‘i’)
3
>>> s1.count(‘a’)
0
>>> s1.count(‘i’, 8, len(s1)) # 8번째 문자부터 끝까지 ‘i’가 나온 횟수
1
: 찾으려는 문자열의 시작 인덱스 (앞에서부터 탐색)
>>> s1 = “this is python string”
>>> s1.index(‘i’)
2
>>> s1.index(‘a’) # 없으면 에러
ValueError: substring not found
: 찾으려는 문자열의 시작 인덱스 (뒤에서부터 탐색)
>>> s1 = “this is python string”
>>> s1.rindex(‘i’)
18
>>> s1.rindex(‘a’) # 없으면 에러
ValueError: substring not found
: 찾으려는 문자열의 시작 인덱스 (앞에서부터 탐색)
>>> s1 = “this is python string”
>>> s1.find(‘n’)
13
>>> s1.find(‘k’) # 없으면 -1
-1
: 찾으려는 문자열의 시작 인덱스 (뒤에서부터 탐색)
>>> s1 = “this is python string”
>>> s1.find(‘n’)
19
>>> s1.rfind(‘k’) # 없으면 -1
-1
: 특정 문자열로 시작하면 True, 아니면 False
>>> s1 = “this is python string”
>>> s1.startswith(‘this’)
True
>>> s1.startswith(‘string’)
False
: 특정 문자열로 끝나면 True, 아니면 False
>>> s1 = “this is python string”
>>> s1.endswith(‘this’)
False
>>> s1.endswith(‘string’)
True
: 공백 지우기
>>> s1 = “ this is python string ”
>>> s1.strip()
‘this is python string’
: 문자열의 왼쪽에 있는 공백 제거
>>> s1 = “ this is python string”
>>> s1.lstrip()
‘this is python string’
: 문자열의 오른쪽에 있는 공백 제거
>>> s1 = “this is python string ”
>>> s1.rstrip()
‘this is python string’
: 문자열이 모두 공백이면 True, 아니면 False
>>> s1 = “this is python string ”
>>> s2 = “ “
>>> s1.isspace()
False
>>> s2.isspace()
True
: 지정한 총 길이가 되도록 양쪽에 공백을 추가하여 중앙정렬
>>> s1 = “this is python string”
>>> s1.center(30) # center(문자열의 폭)
‘ this is python string ’
: 문자열 안의 모든 대문자를 소문자로 변환
>>> s1 = “This Is Python String”
>>> s1.strip()
‘this is python string’
: 문자열 안의 모든 소문자를 대문자로 변환
>>> s1 = “This Is Python String”
>>> s1.strip()
‘THIS IS PYTHON STRING’
: 문자열이 모두 소문자면 True, 아니면 False
>>> s1 = “This Is Python String”
>>> s2 = “this is python string”
>>> s1.islower()
False
>>> s2.islower()
True
: 문자열이 모두 대문자면 True, 아니면 False
>>> s1 = “This Is Python String”
>>> s2 = “THIS IS PYTHON STRING”
>>> s1.islower()
False
>>> s2.islower()
True
: 소문자와 대문자를 바꾼 문자열 반환
>>> s1 = “This Is Python String”
>>> s1.swapcase()
‘tHIS iS pYTHON sTRING’
: 단어의 맨 앞 글자만 대문자로 변환한 문자열 반환
>>> s1 = “this is python string”
>>> s2 = “THIS IS PYTHON STRING”
>>> s1.title()
‘This Is Python String’
>>> s2.title()
‘This Is Python String’
: 단어의 맨 앞 글자만 대문자면 True, 아니면 False
>>> s1 = “This Is Python String”
>>> s2 = “This is python string”
>>> s1.istitle()
True
>>> s2.istitle()
False
: 문자열의 맨 앞 글자만 대문자로 변환한 문자열 반환
>>> s1 = “this is python string”
>>> s2 = “THIS IS PYTHON STRING”
>>> s1.capitalize()
‘This is python string’
>>> s2.capitalize()
‘This is python string’
: 구분자를 기준으로 문자열 나누기
>>> s1 = “this, is, python, string”
>>> s2 = “this is python string”
>>> s1.split(‘,’) # split(‘구분자’)
[‘this’, ‘ is’, ‘ python’, ‘ string’]
>>> s2.split() # default 값은 공백(‘ ’)
[‘this’, ‘is’, ‘python’, ‘string’]
: 여러줄의 문자열을 줄바꿈(‘\n’) 기준으로 나눔
>>> s1 = “this\n is\n python\n string”
>>> s1.splitlines()
[‘this’, ‘ is’, ‘ python’, ‘ string’]
: 문자열 바꾸기
>>> s1 = “this is python string”
>>> s2 = “this is python string string string string”
>>> s1.replace(‘python’, ‘my’) # replace(‘기존 문자열’, ‘새 문자열’)
‘this is my string’
>>> s2.replace(‘string’, ‘S’, 3) # replace(‘기존 문자열’, ‘새 문자열’, ‘개수’)
‘this is python S S S string’ # 4번째 ‘string’은 교체하지 않음
: 여러개의 문자열을 구분자와 함께 합쳐서 하나의 문자열로 변환
>>> s1 = [‘this’, ‘is’, ‘python’, ‘string’]
>>> print(s1)
[‘this’, ‘is’, ‘python’, ‘string’]
>>> s2 = “_”.join(s1) # “구분자”.join(여러개의 문자열)
>>> print(s2)
this_is_python_string
: 지정된 길이에 맞춰서 문자열의 왼쪽에 0을 채움
>>> s1 = “python”
>>> s1.zfill(10) # zfill(문자열의 길이)
‘0000python’
: 문자열을 지정된 길이로 만든 뒤 왼쪽으로 정렬하며 남는 공간을 지정된 문자로 채움
>>> s1 = “python”
>>> s1.ljust(10, ‘*’) # ljust(문자열의 길이, 채울 문자)
‘python****’
: 문자열을 지정된 길이로 만든 뒤 오른쪽으로 정렬하며 남는 공간을 지정된 문자로 채움
>>> s1 = “python”
>>> s1.rjust(10, ‘*’) # rjust(문자열의 길이, 채울 문자)
‘****python’
: 문자를 다른 문자로 바꾸는 테이블 생성 / 문자열 안의 문자를 다른 문자로 바꿈
>>> s1 = “this is python string”
>>> table = str.maketrans(‘tps’, ‘123’) # t->1, p->2, s->3으로 변환
>>> s1.translate(table)
‘1hi3 i3 2y1hon 31ring’
: 여러개의 문자열을 더해서 연결하기
>>> s1 = “this is”
>>> s2 = “ python string”
>>> s1 + s2
‘this is python string’
: 같은 문자열을 여러번 반복하기
>>> s1 = “python”
>>> s1 * 3 # 3번 반복
‘pythonpythonpython’
: 문자열이 알파벳과 숫자로만 이루어져 있으면 True, 아니면 False
>>> s1 = “this is python string”
>>> s2 = “python”
>>> s3 = “123”
>>> s4 = “python123”
>>> s1.isalnum() # 공백이 있어서 False
False
>>> s2.isalnum()
True
>>> s3.isalnum()
True
>>> s4.isalnum()
True
: 문자열이 알파벳으로만 이루어져 있으면 True, 아니면 False
>>> s1 = “this is python string”
>>> s2 = “python”
>>> s3 = “123”
>>> s4 = “python123”
>>> s1.isalpha() # 공백이 있어서 False
False
>>> s2.isalpha()
True
>>> s3.isalpha()
False
>>> s4.isalpha()
False
: 문자열이 숫자로만 이루어져 있으면 True, 아니면 False
>>> s1 = “this is python string”
>>> s2 = “python”
>>> s3 = “123”
>>> s4 = “python123”
>>> s1.isdigit() # 또는 s1.isnumeric()
False
>>> s2.isdigit() # 또는 s2.isnumeric()
False
>>> s3.isdigit() # 또는 s3.isnumeric()
True
>>> s4.isdigit() # 또는 s4.isnumeric()
False
: 문자열이 10진수 문자열이면 True, 아니면 False
>>> s1 = “this is python string”
>>> s2 = “python”
>>> s3 = “123”
>>> s4 = “python123”
>>> s1.isdecimal()
False
>>> s2.isdecimal()
False
>>> s3.isdecimal()
True
>>> s4.isdecimal()
False