1. 문자열 관련 함수
① 대 · 소문자
1) upper
- "문자열" . upper()
- 문자열을 모두 대문자로 바꿔준다.
a = "abCDe"
print(a.upper())
>>> ABCDE
2) lower
- "문자열" . lower()
- 문자열을 모두 소문자로 바꿔준다.
a = "abCDe"
print(a.lower())
>>> abcde
3) swapcase
- "문자열" . swapcase()
- 대문자 → 소문자, 소문자 → 대문자로 바꿔준다.
a = "abCDe"
print(a.swapcase())
>>> ABcdE
4) capitalize
- "문자열" . capitalize()
- 첫 글자를 대문자로 바꿔준 후 나머지 글자들은 소문자로 바꿔준다.
a = "abCDe"
print(a.capitalize())
>>> Abcde
② 위치 찾기
1) find
- "문자열" . find( '찾을 문자' , 시작 위치 , 끝나는 위치)
- 문자 or 문자열을 찾을 때 사용한다.
- 찾는 문자가 여러개면 가장 앞의 문자의 위치를 반환하고, 찾는 문자가 없으면 -1을 반환한다.
- 문자를 찾을 범위( 시작 위치 <= '문자' < 끝나는 위치)를 설정할 수 있다.
a = "abCDe abCDe"
print(a.find('a'))
print(a.find('H'))
print(a.find('ab'))
print(a.find('ab', 2, 8)) # 2 <= 'ab' < 8
# 범위안의 문자의 위치를 반환한다.
>>> 0 # 위치는 0부터 시작한다.
>>> -1
>>> 0
>>> 6 # 공백의 위치도 포함한다.
2) index
- "문자열" . index( '찾을 문자' , 시작 위치 , 끝나는 위치)
- 문자 or 문자열을 찾을 때 사용한다.
- 찾는 문자가 여러개면 가장 앞의 문자의 위치를 반환한다.
- 문자를 찾을 범위( 시작 위치 <= '문자' < 끝나는 위치)를 설정할 수 있다.
※ find와 유사하지만 찾는 문자가 없을 경우 ERROR가 발생한다
a = "abCDe abCDe"
print(a.index('a'))
print(a.index('ab'))
# print(a.index('H')) -> 오류 발생
print(a.index('ab', 2, 8))
>>> 0
>>> 0
>>> 6
3) rfind
- "문자열" . rfind( '찾을 문자' , 시작 위치 , 끝나는 위치)
- find와 동일하지만, 찾는 순서가 find의 반대로 끝에서부터 '문자'를 찾는다
a = "abCDe abCDe"
print(a.rfind('ab'))
print(a.rfind('ab', 0, 4))
>>> 6
>>> 0
4) startswith
- "문자열" . startswith( '문자(x)' , 시작 위치 , 끝나는 위치)
- 문자열의 시작 문자와 'x' 가 동일하면 True, 아니면 False를 반환한다.
- 문자열에서의 범위를 설정할 수 있다.
a = "abCDe abCDe"
print(a.startswith('a'))
print(a.startswith('C'))
print(a.startswith('C', 2, 5))
>>> True
>>> False # C로 시작하지 않아서 False
>>> True # 찾는 범위가 2에서 시작하므로 True
5) endswith
- "문자열" . endswith( '문자(x)' , 시작 위치 , 끝나는 위치)
- startswith와 반대로 문자열의 끝나는 문자와 'x'가 동일하면 True, 아니면 False를 반환한다.
a = "abCDe abCDe"
print(a.endswith('e'))
print(a.endswith('C'))
print(a.endswith('C', 0, 3))
>>> True
>>> False
>>> True
③ 개수
1) count
- "문자열" . count( '문자' , 시작 위치 , 끝나는 위치)
- 문자열에서 '문자'의 개수를 알고 싶을 때 사용한다.
- '문자'를 찾는 범위를 설정할 수 있다.
a = "abCDe abCDe"
print(a.count('b'))
print(a.count('H'))
print(a.count('b', 0, 3))
>>> 2 # 문자의 개수를 반환한다.
>>> 0
>>> 1
④ 변경
1) split
- "문자열" . split( '구분 할 문자(x)' , 구분 지을 횟수)
- 문자열을 ' x '로 구분 짓는다.
- 횟수를 설정하면 몇 번 구분할지 설정할 수 있다.
- 문자열을 split()하면 리스트 형태로 반환된다.
a = "A,piece,of,cake"
print(a.split(','))
>>> ['A', 'piece', 'of', 'cake.']
b = "A piece of cake."
print(b.split()) # 공백은 생략가능
print(b.split(','))
>>> ['A', 'piece', 'of', 'cake.']
>>> ['A piece of cake.'] # 위의 내용을 ','로 한 번더 split함
c = "A piece of cake."
print(c.split(" ", 1))
print(c.split(" ", 2))
>>> ['A', 'piece of cake.'] # 공백으로 한 번 split함
>>> ['A', 'piece', 'of cake.'] # 공백으로 두 번 split함
2) join
- "문자" . join( x )
(1) x가 문자열일 경우
- 문자열 사이에 "문자" 넣어 합친다.
- 반환 형태 : 문자열 → 문자열
a = "Hi Jerry"
print("".join(a))
print(" ".join(a))
print("-".join(a))
>>> Hi Jerry
>>> H i J e r r y
>>> H-i- -J-e-r-r-y
(2) x가 리스트일 경우
- 리스트 사이에 "문자" 넣어 합친다.
- 반환 형태 : 리스트 → 문자열
b = ['Nice','talking','to','you.']
print("".join(b))
print(" ".join(b))
>>> Nicetalkingtoyou.
>>> Nice talking to you.
3) replace
- "문자열" . replace( 변경할 문자(a) , 새로 변경할 문자(x) , 변경할 횟수)
- 문자열에서 변경하고 싶은 문자가 있을 때 사용한다.
- 문자열에서의 a → x 로 변경한다.
- 변경할 횟수를 지정할 수 있고, 생략하면 문자열 전체로 설정된다.
a = "OXOOXX"
print(a.replace("O", "."))
print(a.replace("O", ".", -1))
print(a.replace("O", ".", 0))
print(a.replace("O", ".", 2))
>>> .X..XX
>>> .X..XX # 음수로 설정 시 범위는 문자열 전체 (생략과 같다)
>>> OXOOXX
>>> .X.OXX
⑤ 정렬
1) center
- "문자열" . center(자리)
- 자리를 확보한 후 "문자열"을 가운데 정렬한다.
a = "ABC"
print("012345678")
print(a.center(9)) # 9칸 확보 후 가운데 정렬
>>> 012345678
>>> ABC
2) ljust
- "문자열" . ljust(자리)
- 자리를 확보한 후 "문자열"을 왼쪽 정렬한다.
a = "ABC"
print("012345678")
print(a.ljust(9))
>>> 012345678
>>> ABC
3) rjust
- "문자열" . rjust(자리)
- 자리를 확보한 후 "문자열"을 오른쪽 정렬한다.
a = "ABC"
print("012345678")
print(a.rjust(9))
>>> 012345678
>>> ABC
⑥ strip
1) strip
- "문자열" . strip("x")
- 문자열에서 "x"에 해당하는 문자를 양쪽에서 제거한다.
- "x"와 다른 문자가 만나면 제거를 중단한다.
a = " ABC "
print(a.strip())
>>> ABC
b = "_+.,ABC+_"
print(b.strip("_+,."))
>>> ABC # 여러 문자도 가능
2) lstrip
- "문자열" . lstrip("x")
- 문자열에서 "x"에 해당하는 문자를 앞에서부터 제거한다.
- "x"와 다른 문자가 만나면 제거를 중단한다.
a = " ABC"
print(a.lstrip())
>>> ABC
b = "_+__ABC_+_"
print(b.lstrip("_+"))
>>> ABC_+_
3) rstrip
- "문자열" . rstrip("x")
- 문자열에서 "x"에 해당하는 문자를 뒤에서부터 제거한다.
- "x"와 다른 문자가 만나면 제거를 중단한다.
a = "ABC "
print(a.rstrip())
>>> ABC
b = "_ABC_+_"
print(b.rstrip("_+"))
>>> _ABC
⑦ 아스키코드
1) ord
- ord("문자")
- 문자가 해당하는 아스키코드 정수를 반환한다.
print(ord('a'))
>>> 97
2) chr
- chr(숫자)
- 숫자가 해당하는 아스키코드 문자를 반환한다.
print(chr(97))
>>> a
'Python > 자료형' 카테고리의 다른 글
[Python] 문자열 (0) | 2022.02.05 |
---|