티스토리 뷰
8.1 소개
- 이번 챕터에서 중점적으로 다루는 것은 파이썬의 str 클래스를 사용하여 클래스를 디자인하고 특수 메소드들을 살펴보는 것이다.
- str 클래스는 문자열을 다룰 때 유용할 뿐만 아니라,클래스를 디자인할 떄도 유용하다.
- 챕터 3에서 이미 str 클래스에 대해 조금 다루어 보았다.
- 이번 챕터에서는 str 클래스에 대해 좀 더 깊이 다룰 예정이다.
- 특수 메소드는 파이썬에서 중요한 역할을 한다.
- 이번 챕터에 역시 특수 메소드(special methods)와 연산자 오버로딩(operator overloading), 특수 메소드를 이용하여 클래스를 디자인할 예정이다.
8.2 str 클래스(The str Class)
- str 객체는 불변 객체(immutable object)이다. 이 객체의 내용물은 만들어진 이후로 절대로 바뀌지 않는다.
- 문자열(Strings)은 컴퓨터과학의 기초이며, 프로그래밍에서 자주 이용된다.
- 문자열(Strings)은 str클래스의 객체(object)이다.
- 그래서 당신은 입출력 시 사용했을 것이다.
- input 함수는 문자를 키보드로 부터 반환하고, print 함수는 문자를 모니터에 표시할 것이다.
8.2.1 문자열 생성하기(Creating Strings)
- 우리는 아래와 같이 문자열을 만들 수 있다.
s1 = str() #빈 문자열 객체 생성
s2 = str("Welcome") # Welcome이 내용물인 문자열 객체
- 파이썬은 문자 값을 이용하는 문자열 객체(string object)를 생성하는 문법을 제공한다.
- 예를 들어.
s1 = "" # s1 = str() 과 같은 의미
s2 = "Welcome" # s2 = str("Welcome")과 같은 의미
- 문자열 객체는 불변 객체이다. 객체가 생성된 이후로 절대 바뀌지 않는다.
- 프로그랭 성능 최적화를 위해, 파이썬은 같은 내용을 가진 두 개의 문자열 객체(String object) 중하나만 이용한다.
- 아래의 그림처럼 s1과 s2는 같은 문자열 객체를 가르키며 똑같은 주소(id)를 가지고 있다
.
- 이러한 동작은 파이썬 라이브러리내 모든 불변 객체(immutable objects)에 해당된다.
- 예를 들어, int 역시 불변 객체이며, 같은 값을 가지고 있는 두개의 int 객체 중 하나만 사용한다.
8.2.2 문자열을 위한 함수(Functions for Strings)
- 파이썬의 몇 가지 내부 함수(built-in functions)들은 문자열과 함께 사용한다.
- len 함수를 이용하여 문자열의 문자 개수를 반환 할 수 있다.
- max 함수를 이용해 문자열에서 ASCII 값이 가장 큰 문자를 반환 할 수 있다.
- min 함수를 이용해 문자열에서 ASCII 값이 가장 작은 문자를 반환 할 수 있다.
>>> s = "Welcome"
>>> len(s)
7
>>> max(s)
'o'
>>> min(s)
'W'
8.2.3 인덱스 연산자 [ ] (Index Operator [ ])
- 문자열은 문자들의 연속이다.
- 인덱스 연산자를 이용해 문자열 내 문자 하나하나에 접근이 가능하다.
* 인덱스 연산자 형식
s[index]
- 인덱스는 아래 그림 처럼 0 부터 len(s)-1 까지가 범위이다.
* 인덱스 연산자 예제
1
2
3 |
s = "Welcome"
for i in range(0,len(s),2):
print(s[i],end = "" |
cs |
- 루프문을 이용해 s[0],s[2],s[4],s[6]에 접근한 예제이다.
- 파이썬은 음수(negative number)을 인덱스로 사용가능하다.
- 음수 인덱스는 문자열의 뒤에서 부터 접근을 한다.
>>> s = "Welcome"
>>> s[-1]
'e'
>>> s[-2]
'm'
- s[-1]은 s[-1 + len(s)]와 같은 의미이고, s[-2] 는 s[-2 + len(s)]와 같은 의미이다.
- 여기서 기억해야 할 것은 문자열은 불변 객체이다. 아래와 같은 문법은 불가능하다.
s[2] = 'A' → X
8.2.4 슬라이싱 연산자 [strat : end] (The Slicing Operator [start : end])
- 슬라이싱 연산자(Slicing Operator)는 문자열의 특정 부분만 잘라서 반환한다.
- 이 부분은 [start : end] 문법으로 이용하며, 인덱스 s[start] 부터 s[end-1]까지를 나타낸다.
*슬라이싱 연산자 예제
>>> s = "Welcome"
>>> s[1 : 4]
'elc'
- 위의 예제는 인덱스 1 부터 3까지를 반환하는 예제이다.
- 문자열의 시작 인덱스(starting index)와 끝 인덱스(ending index)는 아래와 같이 간단하게 접근이 가능하다.
>>> s = "Welcome"
>>> s[ : 6]
'Welcom'
>>> s[4 : ]
'ome'
>>> s[1 : -1]
'elcom'
- s[ : 6] 는 s[0 : 6]와 같은 의미이다.
- s[4: ] 는 s[4 : 7]와 같은 의미이다.
- s[1 : -1] 은 s[1 : -1 + len(s)] 와 같은 의미이다.
참고 문헌 : Introduction to Programming Using Python / Y.DANIEL LIANG
※
본 게시물은 개인적인 용도로 작성된 게시물입니다. 이후 포트폴리오로 사용될 정리 자료이니 불펌과 무단도용은 하지 말아주시고 개인 공부 목적으로만 이용해주시기 바랍니다.
교재 영어 원서를 직접 번역하여 정리한 게시물이므로 일부 오타, 의역이 존재할 수 있습니다. 틀린 부분이 있다면 댓글로 알려주시면 감사하겠습니다.
※
'파이썬 > 이론' 카테고리의 다른 글
[파이썬]문자열 반복하기, 문자열 메소드, 문자열 검색 (0) | 2017.08.19 |
---|---|
[파이썬]연결 연산자와 반복 연산자, in과 not in 연산자, 문자열 크기 비교 (1) | 2017.08.19 |
[파이썬]객체지향적으로 생각하기 (0) | 2017.08.07 |
[파이썬]클래스 추상화와 캡슐화(Class Abstraction and Encapsulation) (0) | 2017.08.06 |
[파이썬]불변 객체와 가변 객체, 데이터 필드 숨기기(data hiding) (0) | 2017.08.04 |
- Total
- Today
- Yesterday
- css 그리드
- 백준 11501
- 파이썬 클래스
- 자료구조
- 백준
- 파이썬 단계적 개선
- 파이썬 선택문
- 버츄어박스
- 파이썬 if문
- css 박스
- 백준 10451
- 자바 에센셜 실습문제
- 파이썬 for
- 파이썬 리스트
- 파이썬 문자열
- 자바
- 파이썬 함수
- 파이썬
- 파이썬 터틀
- 자바스크립트 그래프
- 파이썬 연산자
- 파이썬 예제
- 파이썬 while
- 파이썬 객체
- 웹
- 백준 1874
- 자바스크립트 자료구조
- 파이썬 진수 변환
- 명품 c++ 실습
- css
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |