[파이썬 기초] 자료형(문자열)과 기본 연산(2)
안녕하세요!😚 저번 포스팅에 이어 자료형 중 문자 타입에 대해서 설명하겠습니다. 지난 포스팅에서는 문자열 생성 방법과 특수문자 표현,문자열 연산 및 포맷팅에 대해 다뤘습니다. 이번 포스팅에서는 문자열의 인덱싱 및 슬라이싱과 문자열 관련 함수들에 대하여 소개하겠습니다.😗
파이썬 IDLE 또는 개발툴(IDE)을 실행해주세요 :)
(참고로, 저는 아나콘다의 주피터 노트북으로 실습을 하였습니다!)
5. 문자열 인덱싱
인덱싱이란 말 그대로 무언가를 가리키는 것을 의미합니다. 문자열 인덱싱은 문자의 위치(index)를 활용하여 각 문자에 접근할 수 있습니다. 이전 포스팅에서도 말했지만, 파이썬은 항상 0부터 시작합니다. 따라서, 문자열의 인덱스도 0부터 시작합니다. 참고로, 공백도 포함됩니다. 공백을 빠뜨리지 않도록 조심하세요!😶
아래의 문자열을 활용해서, 천천히 인덱싱에 대해 이해해봅시다!
a = 'Python ' a
'Python '
a에 담겨진 문자열의 길이는 총 7이지만, 인덱스는 0부터 6까지 있습니다. 왜 길이가 7이고, 인덱스가 6까지 있냐고 물으신다면, 문자열의 마지막에 있는 공백까지 포함하였기 때문입니다.
아래의 코드처럼 한 글자씩 뽑아낼 수도 있습니다.
print(a[0]) print(a[3]) print(a[-2])
'P' 'h' 'n'
0번째에 해당하는 문자는 'P'이고, 인덱스 번호 3에 해당하는 문자는 'h'입니다. 또한, -2 번째 문자는 n이 됩니다.
또한, 음수를 인덱스로 사용할 수 있는데요, 가장 마지막 값부터 차례로 -1, -2, ... ,-7까지 표현할 수 있습니다.
따라서, 인덱싱은 0부터 시작하고 공백을 포함하며, 가장 뒤의 값을 -1로 하여 거꾸로 시작한다는 점을 기억해주시면 되겠습니다.🤩
6. 문자열 슬라이싱
슬라이싱은 문자열의 여러 값을 자르는 것을 의미합니다. 만약에 a = 'You Only Live Once.'라는 문자열이 있을 때, 'You'라는 단어를 출력하고 싶다고 가정해봅시다. 인덱싱에서 배운 것을 활용한다면, a[0]+a[1]+a[2]를 하면 됩니다. 그렇지만 이렇게 하나하나 인덱스를 뽑아 사용하는 것은 너무 비효율적입니다. 따라서, 우리는 슬라이싱을 통해 조금 더 빠르고 편하게 원하는 문자를 잘라서 가져올 수 있습니다. 😚
이때, 우리는 콜론(:)을 사용해서 한 번에 여러 값들을 잘라올 수 있습니다. 이때도 인덱스가 활용되니 앞의 인덱스 부분을 잘 이해했다면, 쉽게 코드를 이해할 수 있을 겁니다! 그럼 이제 슬라이싱 예제를 살펴볼까요?
a = 'You Only Live Once.' print(a) print(a[0:3]) # 0번째부터 2번째까지 (3번째 문자 포함X) print(a[4:7]) # 4번째부터 6번째까지 (7번째 문자 포함X)
'You Only Live Once.' 'You' 'Onl'
a[0:3]은 a의 첫 문자부터 3번째 문자 바로 전까지 출력하라는 것을 의미합니다. 조금 더 이해를 도울 수 있도록, 수식으로 표현하면 0 <= a < 3로 나타낼 수 있습니다. 이때 0을 생략하여 a[:3]으로 표현할 수도 있습니다. 둘이 결과는 똑같습니다. 그렇다면, a[4:7]은 4번째 위치의 문자부터 7번째 문자 바로 전까지 출력하라는 뜻이겠죠? 많은 분들이 위와 같은 실수를 많이 하는데요, 콜론 뒤의 숫자는 슬라이싱 할 문자에 포함되지 않는다는 것을 꼭꼭 기억하셔야 합니다!! 정말 중요하고 실수하는 분들도 엄청 많습니다.😭😭
a[:3]처럼 콜론 앞의 숫자를 생략하면 첫 문자부터 콜론 뒤 인덱스 이전의 문자까지 출력합니다. 그렇다면 만약에 a[10:]처럼 콜론 뒤의 숫자가 생략된다면 무엇을 의미할까요? 끝까지 출력하라는 것을 의미하겠죠?
7. 인덱싱 & 슬라이싱
인덱싱과 슬라이싱은 함께 사용되는 경우도 많고, 프로그래밍에서 정말정말 많이 등장한답니다! 헷갈리지 않도록 꼭 다시 봐주세요!😃
- 인덱싱을 사용하여 오타 수정
a = 'oramge' print('수정 전 : ' + a[3]) a[3] = 'n' print('수정 후 : ' + a[3])
'수정 전 : m' '수정 후 : n'
- 슬라이싱을 사용하여 오타 수정
a = 'oramge' print('수정 전 : ' + a) a = a[:3]+'n'+a[4:] print('수정 후 : ' + a)
'수정 전 : oramge' '수정 후 : orange'
8. 문자열 관련 함수
문자열과 관련된 함수들이 여러 개 있는데요, 이번에는 그 내장 함수들에 대해 다뤄볼게요!
- count()
count() 함수는 문자열 안에 속하는 특정 문자의 개수를 반환하는 함수입니다. 다음과 같이 사용할 수 있습니다.a = 'apple' a.count('p')
2
- find()
find()는 괄호 안에 들어간 문자가 문자열에서 처음 등장한 위치(index)를 출력합니다. 만약에 찾고 싶은 문자가 문자열 내에 존재하지 않는다면, -1을 출력합니다. 인덱스 번호를 출력하기 때문에 0부터 시작한다는 것을 기억해야겠죠?🙂a = 'apple' print(a.find('p')) print(a.find('z'))
1 -1
- index()
index() 함수는 find() 함수와 거의 비슷합니다! 괄호 안에 들어간 문자가 문자열에서 처음 등장한 위치를 출력해줍니다. 똑같죠? 그러나 다른 점은 문자열 내에 존재하지 않는 문자를 찾는다면, error가 발생한다는 점입니다. find와 index의 차이 잘 기억해주세요!😋a = 'apple' print(a.index('z'))
ValueError: substring not found
- join()
문자열 내의 각각의 문자 사이마다 원하는 값을 삽입해주는 함수입니다. 예시를 보면 이해가 쏙 갈 겁니다!'-'.join('apple')
'a-p-p-l-e'
- upper() & lower()
upper() 함수는 소문자인 문자열을 대문자로 변환해주는 함수이고, 반대로 lower()은 대문자인 문자를 모두 소문자로 바꿔주는 함수입니다.a = 'Apple' print(a.upper()) print(a.lower())
'APPLE' 'apple'
- rstrip() & lstrip() & strip()
strip() 함수는 문자열의 양쪽에 있는 공백을 제거해주는 함수입니다. 따라서, rstrip()은 오른쪽(right)의 공백을 제거하고, lstrip()은 왼쪽(left)의 공백을 제거합니다. 예시를 보면 3가지 함수의 차이를 확실하게 이해할 수 있을겁니다!word = ' rommie ' print(word.rstrip()) print(word.lstrip()) print(word.strip())
' rommie' 'rommie ' 'rommie'
문자열(2) 끝!
이렇게 문자열에 대한 포스팅이 끝났습니다!! 이번 문자열 포스팅에서는 인덱싱과 슬라이싱, 그리고 문자열과 관련된 여러 함수들에 대해 이야기를 해보았습니다. 파이썬에서는 항상 0부터 수를 센다는 거 꼭 기억해주세요!😉
앞으로 자료형은 리스트, 딕셔너리, 튜플, 집합이 남아있는데요, 이 4가지 자료형은 다음 포스팅 때 설명해드릴게요!! 그럼, 다음 포스팅에서 만나요 :) 🤍
Author And Source
이 문제에 관하여([파이썬 기초] 자료형(문자열)과 기본 연산(2)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@rommie/파이썬-기초-자료형문자열과-기본-연산2저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)