# 파이썬 문자열 함수



안녕하세요 코드사기꾼입니다.

저번 강의에 이어서 오늘은 문자열 클래스의 함수에 관하여 알아보도록 하겠습니다.

문자열 클래스란, 따옴표로 감쌓여 있는 값을 의미하며 통상적으로 str이라고 표현합니다. python에서는 강력한 기능의 문자열 함수를 제공하고 있는데요 한번 그 것들에 관하여 알아보도록 하겠습니다.


1. 접근방법


문자열 클래스의 함수에 접근하기 위해서는 먼저 문자열 객체가 있어야겠죠? python은 모든 것을 객체로 인식하기 때문에 문자열 변수나 상수도 객체로 인식합니다. 객체 내부에 있는 함수에 접근하기 위해서는 점(.)을 사용하여 접근합니다.

즉, 객체 내부에있는 함수나 변수에 대한 접근은 객체.함수, 객체.변수로 표현됩니다.


예를 들어 python이라는 클래스에 short이라는 함수가 있다면 이와같이 접근할 수 있습니다.


1
2
myClass = python() # python클래스 객체의 선언
myClass.short() # 객체 내부의 함수에  
cs

 

class를 만들어 놓았으면 먼저 그 클래스를 담는 객체를 선언을 해야겠죠? 그것을 myClass라는 임의의 이름을 가진 변수에 할당합니다. 이렇게 되면 myClass는 python의 인스턴스이니 내부에 있는 변수나 함수에 접근하는 것이 가능해지겠죠? 그래서 myClass.short()라는 구문이 성립하게 되는 것입니다.


문자열클래스도 똑같습니다. 문자열.함수이름 으로 접근하시면 됩니다. 실제 코드를 보면서 이해를 해보도록 하죠.


1
2
3
4
5
6
7
8
9
10
11
myStr = "I love python" # 문자열 선언
 
print(myStr.upper()) # 문자열 클래스의 upper 메소드 사용
 
print("I love python".upper()) # 문자열 클래스의 upper 메소드 사용
 
 
#결과값
 
I LOVE PYTHON
I LOVE PYTHON
cs


1번 라인에 I love python이라는 문자열 변수 myStr을 선언하였습니다. 그렇다면 myStr은 문자열 클래스의 인스턴스나 다름없겠죠? 그렇기 때문에 upper라는 문자열 클래스의 메소드를 사용할 수 있는 것 입니다.(upper는 소문자를 대문자로 변경해주는 메소드입니다.)


5번라인에 보면 I love python을 변수에 할당하지않고 그냥 .upper를 붙여서 사용했는데요, 이 방법 또한 사용 가능합니다. 결과는 보시는 것과 같이 I LOVE PYTHON으로 동일합니다.




# 문자열 함수의 종류


python에는 강력한 성능의 문자열 함수가 다수 포함되어 있습니다. 그것들에 관하여 한번 알아보도록 하죠.


1. find


find 함수는 검색문자나 문자열이 처음나온 위치를 반환하는 함수입니다. 만약 검색한 대상이 문자열에 존재하지 않을 경우 -1을 리턴합니다.


1
2
3
4
5
6
7
8
9
10
"abc".find("a")
"abc".find("ab")
"abc".find("bc")
"abc".find("d")
 
# 결과값
0
0
1
-1
cs



2. join


join 함수는 인자로 받은 문자열으 각 문자사이에 문자열을 삽입하는 함수입니다. 예를 들어 Rekt라는 문자열에 /을 삽입하면 R/e/k/t가 되는 것이죠.


1
2
3
4
"/".join("Rekt")
 
# 결과값
"R/e/k/t"
cs



3. upper & lower


upper는 소문자를 대문자로 변경해주는 함수이며 lower는 대문자를 소문자로 변환합니다.


1
2
3
4
5
6
7
"life is short you need python".upper()
"LIFE IS SHORT YOU NEED PYTHON".lower()
 
# 결과값
 
"LIFE IS SHORT YOU NEED PYTHON"
"life is short you need python"
cs



4. replace


기존 문자열을 원하는 새 문자열로 치환해주는 함수입니다. 문자열에서 일괄적으로 수정할 내용이 있을 경우에 유용하게 사용됩니다.


1
2
3
4
5
"my name is rekt77".replace("rekt77","python")
 
# 결과값
 
"my name is python"
cs



5. split


구분자를 기준으로 문자열을 나눠 리스트로 반환하는 함수입니다. 여기서 리스트라는 것은 python에서 배열같은 자료구조입니다.

제가 생각하기에 가장 많이 쓰는 문자열함수 top 3 에 들어갈것 같습니다. 정말 기능자체가 너무 강력합니다.


1
2
3
4
5
6
"hello python".split()
"010-7607-4401".split("-")
 
# 결과값
["hello","python"]
["010","7607","4401"]
cs


1번 라인에는 아무인자를 넣어주지 않았는데 공백을 기준으로 문자열이 잘린 것을 볼 수 있습니다. 그 이유는 split의 기본 인자가 공백이기 때문입니다. 따라서 공백을 기준으로 나눌 때에는 아무 것도 넣어주시지 않으셔도 무방합니다.



6. count


count함수는 인자로 입력받은 문자열이 문자열내에 몇번 출현하는지 숫자로 반환해주는 함수입니다. 예를 들어 어떤 기사에서 아이언맨이란 단어가 몇 번 출현하였는지 궁금할때에는 기사.count("아이언맨") 하시면 되겠죠? 


1
2
3
4
5
6
7
8
9
10
article = """
The US Military Is Chopping Up Its Iron Man Suit For Parts
It’s no wonder Stan Lee had to invent a power-source that defied
the laws of physics to make Iron Man feasible even as a comic-book.
"""
 
article.count("Iron Man")
 
# 결과값
2
cs


7. startswith


startswith 함수는 어떤 문자열이 특정 단어로 시작하는지 체크할 때 쓰이는 함수입니다. 예를 들어 a로 시작하는 단어만을 검사하고 싶을 때가 있죠? 이런 경우에 사용하면 굉장히 유용한 함수입니다. 결과값은 참/거짓으로 리턴됩니다.


1
2
3
4
"apple".startswith("a")
 
# 결과값
True
cs


'Dev > python' 카테고리의 다른 글

[python] 리스트 함수  (0) 2019.02.11
[python] 리스트와 Shallow Copy  (0) 2019.02.10
[python] 문자열  (0) 2019.02.07
[python] 기본자료형 - 숫자  (0) 2019.02.07
[python] 파이썬 설치하기  (0) 2019.02.07

+ Recent posts