일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 문자열 포매팅
- 서식지정자
- 자료형
- 라즈베리파이
- 파이썬문자열
- 문자열프로그램
- 소수점 표현
- float()
- 천 단위 콤마
- 온도변환프로그램
- f문자열포매팅
- while반복문
- 파이썬 문자열 함수
- 파이썬
- 문자열포매팅 정렬
- 파이썬 문자열 프로그램
- 문자열
- 파이썬 반복문
- print()
- 라즈비안
- if~elif~else
- 라즈베리파이3B+
- 파이썬 자료형
- str()
- 티스토리
- 파이썬 형변환
- 섭씨화씨변환프로그램
- 라즈베리파이 삼바
- 프로그램
- Python
- Today
- Total
Welcome to the Matrix
017. 파이썬 문자열 처리를 위한 다양한 문자열 함수 본문
이번에는 파이썬 문자열 처리를 위한 다양한 '문자열 함수'에 대해서 알아보겠습니다.
앞서 우리는 파이썬에서 문자열이 무엇인지, 문자열을 사용해서 어떤 연산을 할 수 있는지, 그리고 문자열을 이용한 간단한 파이썬 프로그램을 작성해 봤습니다.
문자열에 사용되는 함수들
파이썬에서 문자열은 하나의 '객체'입니다.
문자열뿐 아니라 파이썬의 모든 것은 객체입니다.
그리고 그 객체를 '데이터'와 '행위'라는 요소로 이루어졌습니다.
이 중, 데이터에 해당하는 것이 우리가 알고 있는 기본 자료형(숫자, 문자열, 불)을 포함한 앞으로 알게 될 수많은 자료형들입니다. 그리고 행위에 해당하는 것이 함수, 또는 메서드라고 불리는 것들입니다.
문자열이란 자료형은 자체적으로 사용할 수 있는 함수를 가지고 있는 것입니다. 이를 문자열 함수라고 하고, 기본적으로 '문자열'이란 객체에 포함되어 잇기 때문에 바로 사용할 수 있습니다.
단, 문자열 함수를 사용하기 위해서는 문자열, 또는 문자열 변수 이름 뒤에 '닷 연산자(.)'를 붙인 다음 함수 이름을 써서 사용합니다.
문자열을 활용하기 위한 함수는 아주 다양합니다. 우리는 그 함수를 이용해서 문자열 처리를 더 편하고 효과적으로 할 수 있습니다.
문자열 길이 구하기(len)
파이썬에서 문자열의 길이를 구하기 위해 사용하는 함수는 'len()' 함수입니다.
len() 함수는 문자열에 포함되지 않는 함수지만, 파이썬에 기본적으로 내장된 함수이므로 별다른 설정 없이 바로 사용할 수 있는 함수입니다.
사용법은 무척 간단합니다. 아래와 같이 사용할 수 있습니다.
len('Hello, world')
a = 'Hello, world')
len(a)
len() 함수의 괄호 안에 길이를 알고 싶은 문자열 변수나 문자열을 입력하면 그 문자열의 길이를 알려줍니다.
문자열 내의 문자 개수 세기(count)
count() 함수는 파이썬 문자열 내에 찾는 문자의 개수가 몇 개 있는지 알려주는 함수입니다.
다음과 같이 count() 함수를 사용할 수 있습니다.
a = 'Hello, world'
a.count('e')
a.count('l')
'Hello, world'.count('l')
위 예는 'Hello, world'라는 문자열에 'e'의 개수, 그리고 'l'의 개수를 세어본 예입니다.
문자열 찾기(find, rfind)
파이썬에서 특정 문자(또는 문자열)가 문자열 내부 어디에 위치하는지 확인할 수 있습니다. 이때 사용하는 문자열 함수는 'find()' 함수와 'rfind()' 함수입니다.
- find() : 왼쪽에서 오른쪽으로 검사하며, 특정 문자(문자열)가 처음 등장하는 위치를 찾습니다.
- rfind() : 오른쪽에서 왼쪽으로 검사하며, 특정 문자(문자열)가 처음 등장하는 위치를 찾습니다.
find()와 rfind()는 하는 일은 같지만, 특정 문자(또는 문자열)를 찾는 방향이 반대입니다.
a = 'Hello, world'
a.find('l')
a.rfind('l')
a.find('lo')
a.find('x')
문자열 'Hello, world'에 대해 find() 함수로 'l'을 검색했을 때, 그 첫 번째 위치는 2입니다.
그리고, rfind() 함수로 'l'을 검색했을 때, 그 첫 번째 위치는 10입니다.
문자뿐 아니라 문자열('lo')도 검색을 할 수 있고, 발견되는 첫 번째 위치는 3입니다.
마지막으로, 만약 찾는 문자 또는 문자열이 없을 경우, 결과로 -1을 돌려줍니다.
파이썬의 문자열은 그 위치(index)를 0부터 세기 때문에 'Hello, world'의 첫 번째 'l'의 위치는 2입니다.
문자열 찾기(index)
파이썬 문자열에서 특정 문자(또는 문자열)의 위치를 찾는 다른 방법은 index() 함수를 이용하는 방법입니다. index() 함수는 find() 함수와 동일하게 동작합니다.
index() 함수가 find() 함수와 다른점이 있다면, 문자열 내에 없는 문자(문자열)를 찾으려고 하면 -1이 아닌 오류를 발생시킵니다.
a = 'Hello, world'
a.index('l')
a.index('lo')
a.index('x')
위 예제 코드를 보면, index() 함수를 사용해 'Hello, world' 문자열 내에 존재하지 않는 'x'를 찾으려고 시도하면 오류를 발생시키는 것을 볼 수 있습니다.
문자열 대/소문자 바꾸기(upper, lower, title)
파이썬에서 문자열 함수 upper() 함수는 문자열 내 알파벳을 대문자로 바꿔줍니다. 또, lower() 함수는 문자열 내의 알파벳을 소문자로 바꿔줍니다. 마지막으로 title() 함수는 문자열 내 각 단어의 첫 번째 알파벳만 대문자로 표기하고 나머지는 소문자로 바꿔줍니다.
a = 'HELlo, world~!!'
a.upper()
a.lower()
a.title()
예를 들기 위해 문자열 'HELlo, world~!!'라는 문자열을 변수 a에 할당했습니다.
upper() 함수의 경우, 모든 알파벳 문자를 대문자로 변경한 것을 볼 수 있습니다.
lower() 함수는 모든 알파벳 문자를 소문자로 변경한 것을 볼 수 있습니다.
그리고, title() 함수는 각 단어의 첫 알파벳 문자만 대문자로 나머지는 소문자로 변경한 것을 볼 수 있습니다.
문자열 나누기(split)
파이썬에서 문자열을 특정한 문자를 기준으로 나눌 수 있습니다. 이때 사용하는 함수가 split() 함수입니다.
문자열을 나누는 기준이 되는 문자를 split() 함수의 괄호 안에 넣어서 문자열을 나눌 수 있습니다. 괄호 안에 아무것도 넣
지 않으면 문자열을 공백(' ')으로 나누게 됩니다.
a = 'Life is too short'
a.split()
a = '10, 20, 30, 40, 50'
a.split(', ')
'Life is too short'라는 문자열을 공백을 기준으로 나누기 위해 split() 함수를 사용했습니다. 그리고 '10, 20, 30, 40, 50'이라는 문자열을 ', '을 기준으로 나누기 위해 split(', ')를 사용했습니다.
split() 함수를 이용해서 특정 문자를 기준으로 나눈 문자열은 '리스트'라는 자료구조에 저장됩니다.
리스트는 조만간 살펴볼텐데요, 일단 문자열을 split() 함수를 이용해서 나눌 수 있다는 점을 기억하면 됩니다.
문자열 합치기(join)
join() 함수는 괄호 안의 문자열 사이에 특정 문자(문자열)를 삽입하여 새로운 문자열을 만드는 함수입니다.
먼저 다음 예를 살펴보겠습니다.
a = 'Hello, world'
a.replace('world', 'Jane')
먼저 첫 번째, 두 번째 예를 보면, 문자열 합치기라기 보다는 문자열 연결하기로 보입니다.
join() 함수의 괄호 안의 문자열을 각각 '-'와 ' '로 연결한 문자열이 결과로 반환됩니다.
하지만, 세 번째 예를 보면 확실히 문자열을 연결한다고 볼 수 있습니다. 4 개의 문자열을 가진 리스트를 공백(' ') 문자로 join() 함수를 이용해 연결했습니다.
split() 함수와 join() 함수는 반대되는 개념의 기능을 하는 함수라고 볼 수 있습니다.
문자열 공백 제거(strip, lstrip, rstrip)
strip() 함수는 문자열의 양 끝에 존재하는 공백을 제거하는 함수입니다.
파이썬뿐 아니라 많은 프로그래밍 언어에서 문자열을 처리하기 전에 문자열의 양 끝에 붙은 불필요한 공백을 제거하기 위해 strip() 함수를 사용합니다. 여기서 공백이란 띄어쓰기, 탭, 줄 바꿈 문자 등을 모두 포함합니다.
strip() 함수는 아래 보는 것처럼 세 종류가 있습니다.
- strip() : 문자열 앙 옆의 공백을 제거합니다.
- lstrip() : 문자열 왼쪽의 공백을 제거합니다.
- rstrip() : 문자열 오른쪽의 공백을 제거합니다.
다음 예를 살펴보겠습니다.
a = 'Hello, world'
'-'.join(a)
' '.join(a)
b = ['Life', 'is', 'too', 'short']
' '.join(b)
문자열을 저장한 변수 a를 보면, 문자열의 양 끝에 탭 문자와 공백이 존재하는 것을 확인할 수 있습니다.
strip(), lstrip(), rstrip()을 이용해서 문자열 양 끝의 불필요한 공백을 제거한 것을 볼 수 있습니다.
주로 strip() 함수를 사용하고, lstrip(), rstrip() 함수는 잘 사용되지 않습니다만, 알고 있으면 언젠가 도움이 되는 날이 있을 것입니다.
문자열 바꾸기(replace)
문자열의 특정 문자(문자열)를 다른 문자(문자열)로 교체하고 싶을 경우 사용하는 함수가 replace() 함수입니다.
다음 예를 살펴보는 것이 직관적으로 알 수 있을 것 같습니다.
a = 'Hello, world'
a.replace('world', 'Jane')
이상 파이썬의 문자열 처리에 사용되는 문자열 함수 중 많이 사용하는 함수를 위주로 알아보았습니다.
'Python > PythonBasic' 카테고리의 다른 글
019. while 반복문을 이용한 파이썬 반복문 (0) | 2021.01.06 |
---|---|
018. 파이썬 if, else, elif 조건문을 이용한 조건 분기 (0) | 2021.01.05 |
016. 문자열 자료형을 이용한 간단한 파이썬 프로그램 - 주민등록번호 앞 6자리로 생년, 월, 일 정보 출력 (0) | 2021.01.02 |
015. 숫자 자료형을 이용한 간단한 파이썬 프로그램 예제 - 섭씨 화씨 변환 프로그램 (0) | 2021.01.02 |
014. 파이썬 사용자 입력을 위한 input() 함수 (0) | 2020.12.31 |