1. 문자열 변수 v_str에 임의의 문자열을 입력하고 다음 조건에 맞는 문자열을 출력한다.
1-1. 1번째와 3번째 문자열을 출력한다.
1-2. 4번째에서 8번째 까지의 문자열을 출력한다.
1-3. 맨 뒤 5개의 문자만 역순으로 출력한다.
v_str = "kitri_st07"
1-1.
print(v_str[0])
print(v_str[2])
파이썬 문자열은 배열처럼 인덱스로 접근할 수 있다. 여느 프로그래밍 언어가 그렇듯 인덱스는 0부터 시작한다.
즉 1번째 문자 -> 인덱스 0
3번째 문자 -> 인덱스 2
1-2.
print(v_str[3:8])
1-1에서 설명한 것처럼 4번째부터 8번째까지의 문자열은 인덱스 3부터 7까지를 의미한다.
파이썬 문자열은 사실상 문자('a', 'b', 'c', ...) 의 배열이라 볼 수 있다.
그 말은 즉 배열에 사용하는 연산을 문자열에도 사용할 수 있다는 의미이다.
물론 완전히 같지는 않다. 사용법이 상당부분 비슷하다는 의미로 해석하면 될 것 같다.
어떠한 문자열 s에서 s[n:k]는 문자열 s의 인덱스 n부터 인덱스 (k-1) 까지의 문자열을 의미한다.
예제에서 v_str = "kitri_st07" 이므로 v_str[3:8]은 v_str의 인덱스 3부터 인덱스 7까지, 즉 "ri_st"가 된다.
1-3.
print(v_str[-1:-6:-1])
파이썬 문자열의 인덱스에 음수를 넣으면 문자열의 뒤 부터 접근할 수 있다.
예컨데 s = "hello"라면, s[-1]은 s의 제일 끝 문자, 즉 'o'를 가리킨다. 물론 배열에서도 같은 방식으로 사용 가능하다.
이것은 다른 언어에서 찾아보기 힘든 강력한 기능이며,
파이썬이 데이터를 다루기 가장 좋은 언어라는 평가를 받는 이유 중 하나다.
1-2에서 s[n:k]는 s의 인덱스 n부터 k-1까지의 문자열이라고 했었다.
사실 이 표현식에는 생략된 것이 하나 있다. 바로 오프셋인데, 정리하자면 다음과 같다.
s[start, end, offset] => 문자열 s의 start 인덱스부터 end-1 인덱스까지, offset 칸만큼 건너뛰어 읽은 결과.
예컨데, s="hello World!"라 했을 때, s[0:5:1]이라면, 인덱스 0부터 4까지 1칸씩 읽으므로 "hello"가 된다.
s[0:5:2]라면? 두 칸씩 건너뛰어 읽으므로 인덱스 0, 2, 4의 문자가 뽑혀 나온다. 즉 결과는 "hlo"
이 두가지 개념을 가지고 문제로 돌아오자.
v_str[-1:-6:-1]은 무슨 의미일까?
문자열의 가장 끝 문자부터(v_str[-1]) 끝에서 5번째 문자까지(v_str[-5]) 뒤로 한칸씩 읽으라는 얘기다.
즉 v_str의 제일 끝 5개 문자가 나올 것이다. 결과는 "70ts_"
솔직히 글 내용이 불친절하다. 어디서부터 설명해야 할지 감이 안 잡힌다.
정말 기초적인 개념들은 책이나 인터넷만 찾아봐도 잘 설명한 글이 많이 있으니 참고하길 바란다.
감이 잡히면 이 글이 무슨 얘기를 하는건지 이해할 수 있을 것이다.
'Programming > Python' 카테고리의 다른 글
Python 함수의 매개변수, 인수, 키워드 인수, 가변 인수 (0) | 2023.01.02 |
---|---|
Python 응용문제 - 소수 판별 및 응용 프로그램 (0) | 2023.01.01 |
Python 응용문제 - 최대 최소값 구하기 (0) | 2023.01.01 |
Python 응용문제 - 가위바위보 게임 만들기 (0) | 2022.12.31 |