Python/자료형

[Python] 문자열 관련 함수

HeoN97 2022. 2. 5. 20:41

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