안녕하세요 오늘은 문자열 Slicing(슬라이싱) 과 문자열 Indexing(인덱싱)
에대해서 배워보겠습니다.
word1 = "1. If you do not walk today, you will have to run tomorrow"
word2 = "2. Put off for one day and ten days will pass"
word3 = "3. Time is gold"
우선 3가지의 변수에 다음과같은 명언을 대입하였습니다
저번시간을 떠올리면서 word3의 문자열의 길이는 어떻게 구 할까요?
len(word3)
이런식으로 해야합니다.
정답은 무엇일까요?
혹시 12라고 생각하셨나요? ( 점포함해서)
네 아니였습니다. 왜냐하면
len() 함수는 문자열의 공백도 포함해서 숫자를 카운팅합니다.
공백이 총 3개이고 문자는 12개여서 len(word3)의 반환값은 15가 됩니다!
만약에 word3에서 is 라는 문자만 가져오고 싶은데 어떻게 해야할까요?
여기에서 쓰이는 것이 문자열 인덱싱이랑 슬라이싱입니다
String Indexing(문자열 인덱싱) :
인덱싱은 무언가를 가리킨다는 의미입니다 그러면 문자열 인덱싱은 문자열들의 순서를 가리키는 것을 말합니다
사람들은 사과가 하나 둘 셋 하면서 숫자를 세지만
컴퓨터는 0 1 2 3 ... 4.. 이렇게 셉니다
그러면 word3 = "3. Time is gold" 는 어떻게 세어질까요?
"3. Time is gold"
3 = 0
. = 1
공백 = 2
T = 3
i = 4
이렇게 됩니다. 자 파이썬에서 문자열의 순서도 알았으니
T 만을 뽑아?봅시다.
변수 word3 에서의 3번째 입니다
word3[3] 이라고 하면 결과가 T 가 반환될것입니다. 결과를 보실까요?
그러면 2 에 위치한 공백을 출력해볼까요?
마지막으로 한가지더!
word3[-1] 은 무엇일까요?
결과를 보니 이상한 결과가 나왔습니다
word3 = "3. Time is gold"
-1 을 넣었더니 word3의 가장마지막 : d
-2 를 넣었더니 word3의 l
-3 를 넣었더니 word3의 o
-4 를 넣었더니 word3의 g
위의 결과로 보니 거꾸로 된다는 걸 알 수 있었습니다.
다음으로 넘어가서 문자열 슬라이싱을 알아보겠습니다
String Slicing(문자열 슬라이싱) : 문자열 슬라이싱은 한마디로 문자열을 자르는 것을 의미
마치 큰덩어리였던 문자열을 조그만한 덩어리로 자를 수 있습니다
word2 = "2. Put off for one day and ten days will pass"
0번째 위치한 건 2
1번째 위치한 건 .
2번째 위치한 건 공백
3번째 위치한 건 P
그러면 put은 3부터 5까지입니다
word2에서의 문자열중에서 3부터 5까지의 문자를 가져오게되면 하나의 단어 즉 put 을 가져오게 됩니다
word2[3:6]
이렇게 입력하면 3,4,5까지를 의미합니다.
주의할점
나타내고 싶은 범위의 마지막 숫자 에 +1 을 해주어야합니다
3:6 이라는 범위는 3<= x <6 이런 범위를 가지고 있습니다.
그러면 word1에서의 not 을 출력하려면 어떻게 해야할까요?
.
.
.
.
.
.
.
맞추셨나요? ㅎㅎ
아무 숫자가없으면 문자열의 처음부터 라는 의미입니다.
예를 들어서 [:5] 는아래의 사진과같은 의미입니다.
문제를 조금더 풀어볼까요?
word1[:9] 처음부터 인덱스9까지 가아닌! 인덱스 8까지
word3[4:] 4번인덱스 부터 마지막까지
word3[3:-5]
word3 = "3. Time is gold"
d = -1
l = -2
o = -3
g = -4
공백 = -5
s = -6
즉 처음부터 s까지 하고싶다면 s 의 자리가 -6이니까 +1을 해주면 -5를 넣어야 s까지 의 범위가 됩니다.
결과 화면입니다.
이해가 되셨나요? 궁금하신 점은 댓글로 물어봐주세요
'Python > Basic' 카테고리의 다른 글
[파이썬 기초] 파이썬 리스트 List 기초 완전 정복 1 (0) | 2019.06.15 |
---|---|
[파이썬 기초] 파이썬 문자열 내장 함수 총 정리 | [python Basic] Python String Function doc (0) | 2019.05.23 |
[파이썬 기초] 파이썬 문자열 나누기(split), 결합하기(join) | split() , join() (0) | 2019.05.22 |
[파이썬기초] 파이썬 문자열 연산하기 (1) (0) | 2019.05.18 |
[파이썬기초] 파이썬 문자열 자료형 이란? (1) (1) | 2019.05.17 |