문자열은 가장 많이 사용하는 자료형이다. 컴퓨터 소프트웨어에 들어가는 상당한 양의 자료는 대부분 문자열이다. 사용자가 사용하는 언어가 문자기 때문이다.

 

항상 데이터형을 생각할 때 컴퓨터는 자료형을 어떻게 바라보는지 관심을 가져야 한다. 컴퓨터 내부에서는 문자열도 결국은 연속된 수의 값에 지나지 않는다.

 

파이썬은 여러가지 문자열 조작 방법을 제시하고 있다. 전통 언어인 C보다도 문법이 쉬워 편하다.

 

1. 문자열 바꾸기

str1 = "Python is short, you need a Life"

str1 = str1.replace("Python","Life")
str1 = str1.replace("a Life","a Python")

print(str1)

문자열을 바꾼다. 결과를 유지하려면 바뀐 문자열을 다시 변수에 할당한다.

2. 문자 바꾸기

str1 = "Python is short, you need a Life"

table = str.maketrans('i','1')
print(str1.translate(table))

문자를 바꾸는 테이블을 생성한다. 예제에서는 i를 1로 변환한다.

 

 

3. 문자열 분리

 

split() 은 분리하다는 뜻이다. 원어민이 많이 쓰는 말이다. split the bill (더치패이하다) 스플릿 안에 인자를 주면 그 문자를 기준으로 분리해준다. 보통 , 콤마나 . 도트를 많이 쓴다.

 

str1 = "Python is short, you need a Life"

a = []
a = str1.split()

for i,k in enumerate(a,start=1):
    print(i,k)

 

스플릿

4. 문자열 리스트에서 연결하기

 

3에서 분리한 것을 다시 연결한다. ' '.join(문자열 리스트) ' ' 안에 연결자를 넣어준다. 문장이면 공백으로 충분하다.

str1 = "Python is short, you need a Life"

a = []
a = str1.split()

for i,k in enumerate(a,start=1):
    print(i,k)

b = ' '.join(a)
print(b)
b = '='.join(a)
print(b)

5. 대소문자 변경


간단히 변경가능하다. 저장하기 위해서는 별도의 문자열 변수를 사용한다는 것을 잊지말자.

str1 = "Python is short, you need a Life"

print(str1.upper())
print(str1.lower())

6. 공백 삭제하기 (왼쪽, 오른쪽 양쪽)

 

print  는 기본적으로 라인피드를 하므로 뒤에  간격을 알기 위해서는 마지막 문자 end 옵션을 이용한다.

str2 = '   Butterfly is ready to fly!     '
print(str2)
print(str2.lstrip(), end = '| and now | \n')
print(str2.rstrip(), end = '| and now | \n')
print(str2.strip(), end = '| and now | \n')

 strip

7. 양쪽의 특정문자 삭제하기

 

마치 양쪽의 글자를 깎는 것 처럼 삭제가능하다.

str2 = '   Butterfly is ready to fly!     '
print(str2)

print(str2.lstrip(' B'))
print(str2.rstrip('y! '))
print(str2.strip(' Buy!'))

8. 문자 정렬하기

 

포맷형식으로도 가능한 문자 정렬 메소드이다. 상황에 맞는 메소드를 잘 골라서 사용한다.

print('Python3'.ljust(15))
print('Python3'.rjust(15))
print('Python3'.center(15))

9. 메서드 체이닝

 

메서드가 체인처럼 연결된다고 해서 메서드 체이닝이다. 문자열을 처리하고 반환하기 때문에 그 문자열 다시 받아서 메소드를 걸 수 있다. 리턴값인 문자열만 돌아오면 체이닝 할 수 있다.

코드 보기가 편하다는 장점이 있다

 

print(input("enter 3 numbers with space : ").split())

 

10. 문자열 왼쪽에 0으로 채운다

print('35'.zfill(10))
print('80'.zfill(5))
print('no player'.zfill(15))

문자열의 왼쪽에 0으로 채운다. 열을 맞추기 위해서 사용가능

 

 

11. 문자열 위치 찾기

 

find rfind 와 index rinder 를 사용해서 찾을 수 있다. 처음 찾은 문자열의 위치를 반환한다. r이 붙은 메소드는 뒤에서 부터 찾는다.

str1 = 'Python is really simple but powerful'

print(str1.find('re'))
print(str1.find('Py'))
print(str1.find(' i'))

print(str1.rfind('i'))
print(str1.rfind('ul'))
print(str1.rfind('si'))

print(str1.index('re'))
print(str1.index('b'))

print(str1.rindex('t'))
print(str1.rindex('le'))



 

12. 문자열 개수 (count)

 

count는 특정 문자가 몇번 나오는지 카운트 한다.

str1 = 'Python is really simple but powerful'

print(str1.count('p'))
print(str1.count('l'))

 

* 파이썬 스탠다드 라이브러리에는 문자열을 다루는 더 많은 메소드들이 있을 것이다. 필요한 메소드가 있다면 구글 검색을 생활하 하면 답을 빨리 찾을 수 있다.

공유하기

facebook twitter kakaoTalk kakaostory naver band