티스토리 뷰

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
= "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



본 게시물은 개인적인 용도로 작성된 게시물입니다. 이후 포트폴리오로 사용될 정리 자료이니 불펌과 무단도용은 하지 말아주시고 개인 공부 목적으로만 이용해주시기 바랍니다.


교재 영어 원서를 직접 번역하여 정리한 게시물이므로 일부 오타, 의역이 존재할 수 있습니다. 틀린 부분이 있다면 댓글로 알려주시면 감사하겠습니다. 

 

 

 

댓글