본문 바로가기
Python/기초 과정

04 파이썬 문자형 특징2

by To올라운더 2023. 6. 10.
반응형

지난 번 문자형 특징 1(탈출문자, 연산 등) 에 이어

2023.06.10 - [IT 배우기/Python] - 03 파이썬 문자형 특징1

 

03 파이썬 문자형 특징1

앞선 시간에 각 자료형별 선언 방법에 대해 알아봤고, 2023.06.09 - [IT 배우기/Python] - 02. 파이썬 자료형 02. 파이썬 자료형 우리는 앞에서 필요한 값들을 변수에 저장하는 방법을 배웠다. 2023.06.06 - [I

to-all-rounder.tistory.com

 

문자형 특징2를 다뤄보겠다. 앞에 내용을 안 보신 분들은 위의 포스팅을 먼저 참고해주세요.

[1] 문자형(String)

문자형은 문자들의 합으로 이루어진다.

하나의 단어 또는 문장, 문단이 될 수 있는데 

str1 = '단어'
str2 = 'python'
str3 = '문장으로도 선언'
str4 = '''문단으로도 선언이 

가능합니다.

두문단이든 세문단이든
무엇이든 가능합니다.'''

len 함수를 사용하면 각각의 변수가 몇 글자로 이루어져 있는지 확인할 수 있다.

사용 방법은 자료형을 알기 위해 type을 사용했듯이 len을 사용하면 된다.

str1 = '단어'
str2 = 'python'
str3 = '문장으로도 선언'
str4 = '''문단으로도 선언이 

가능합니다.

두문단이든 세문단이든
무엇이든 가능합니다.'''

print(len(str1))
print(len(str2))
print(len(str3))
print(len(str4))

str1과 str2를 비교해보면 한글이든 영어든 문자 단위로 길이(문자의 크기)를 계산하는 것을 확인할 수 있고,

문자 단위로 다룰 수 있다는 것에 따라 문자를 찾거나 자를 수 있는데 이를 '인덱싱'과 '슬라이싱' 이라고한다.

반응형

 

 

4. 인덱싱(Indexing)

  - 책의 제일 앞 쪽에 있는 목차를 영어로 index라 부르는데,

    예를 들어 우리가 찾는 주제가 목차에서 20 페이지를에 있다는 것을 '가르키기 때문'에

    원하는 내용을 바로 찾아갈 수 있다.

문자열 p y t h o n   i s   b e s t
index 0 1 2 3 4 5 6 7 8 9 10 11 12 13
index(역순) -14 -13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1
len 14

위의 표가 파이썬(python)에서 문자열('python is bets')에 대한 목차(위치 값)이다.

사용 방법은 '변수명[인덱싱번호]' 를 사용하며,

유의할 점은 인덱싱의 경우, 0부터 시작한다는 것과

띄어쓰기(' ')나 특수문자도 문자로서 취급되기 때문에 한 자리를 차지한다는 것이다.

str1 = 'python is best'
print(len(str1)) # 결과 값 : 14
print(str1[0]) # 결과 값 : p
print(str1[10]) # 결과 값 : b
print(str1[-1]) # 결과 값 : t
print(str1[-10]) # 결과 값 : o

5. 슬라이싱(Slicing)

  - 슬라이싱은 원하는 부분을 '잘라낸다' 라는 개념의 기능이다.

  - 사용 방법은 위에서 확인한 인덱싱 기능을 이용하는 방법인데

    [ 시작 값(이상) : 종료 값(미만) : 간격 ] 으로 사용할 수 있다.

문자열 p y t h o n   i s   b e s t
index 0 1 2 3 4 5 6 7 8 9 10 11 12 13
index(역순) -14 -13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1
len 14

  예를 들어 아래의 코드를 살펴보자.

str1 = 'python is best'
print(str1[0:10:1]) # 결과 값 : python is
print(str1[0:10]) # 결과 값 : python is / 간격을 생략할 경우 기본값인 1이 적용된다.
print(str1[::]) # 결과 값 : python is best / 모든 값을 생략하면 처음부터 끝까지 이다.
print(str1[0:10:2]) # 결과 값 : pto s
print(str1[::-1]) # 결과 값 : tseb si nothyp
print(str1[-1:-10:-1]) # 결과 값 : tseb si n

  2번라인과 3번라인을 비교해보면 간격의 경우, 1을 사용할 때에는 생략을 해도 동일한 결과가 나온다.

  4번라인과 같이 시작값과 종료값을 생략하는 경우도 처음부터 끝까지라는 기본 값을 가진다.

  5번라인의 경우 처음부터 10번째 미만 자리까지 2개 단위로 출력을 요청한 결과이며,

  6번라인 처럼 간격을 -1로 설정할 경우, 역순으로 출력도 가능하다.

 잘라내기 위해 슬라이싱을 사용하는데 이런걸 언제 쓰는가? 라는 의문이 들 것이다.  

 슬라이싱을 사용하는 경우는 대개 한 개의 변수에 원하는 값이 포함되어 들어오는 경우이거나,

 불필요한 내용이 함께 포함되어 있는 경우에 사용한다.

 예를 들어 생년월일을 나타내는 birth_date라는 변수에 년월일 정보가 함께 들어오는데,

 오늘이 생일인지를 확인하려면 월과 일정보만 있으면 된다.

그럴 때, 아래의 2가지 방법 중 하나를 이용할 수 있다.(결과는 동일하다.)

birth_date 2 0 0 2 0 2 2 6
birth_date[4:] 0 1 2 3 4 5 6 7
birth_date[:-4] -8 -7 -6 -5 -4 -3 -2 -1
birth_date ='20020226'
birth_date_only1 = birth_date[4:]
print(birth_date_only1)
birth_date_only2 = birth_date[-4:]
print(birth_date_only2)

 6. find 와 index

 - 위의 인덱싱과 슬라이싱의 경우, 원하는 위치 값을 알고 해당 값을 수정하게 되는데,

   반대로 해당 값을 알고 인덱싱 정보를 얻고자할 때에는 문자열의 내장함수인 find와 index를 사용한다.

 - 사용방법은 해당변수 뒤에 점을 찍고(해당 문자형 데이터(객체)가 가진 함수를 사용하는 방법)

   find 혹은 index를 사용하면 해당 값의 위치를 알려준다.

 

  1) find 사용 및 결과

str1 = 'python is best'
print(str1.find('t')) # t의 경우 python 과 best에 모두 포함되지만 처음 찾은 위치 값만 반환
print(str1.find('is')) # 단어 또는 문장으로도 검색가능, 시작위치 값 반환
print(str1.find('q')) # 없는 문자를 찾을 때

2) index 사용 및 결과

str1 = 'python is best'
print(str1.index('t')) # t의 경우 python 과 best에 모두 포함되지만 처음 찾은 위치 값만 반환
print(str1.index('is')) # 단어 또는 문장으로도 검색가능, 시작위치 값 반환
print(str1.index('q')) # 없는 문자를 찾을 때

  - 2, 3라인을 보면 find와 index간 결과가 동일하게 나타나며, 

    2개 이상을 찾았을 때 처음위치만을 알려주는 특징 또한 동일하다.

  - 다만 결과가 없을 때에 find는 -1, index는 Error를 발생하기 때문에 find를 사용하는걸 권장한다.

 

길었던 문자형의 특징을 다음 포스팅으로 끝으로 정리해보겠다.

 

반응형

'Python > 기초 과정' 카테고리의 다른 글

06 파이썬 숫자형 특징  (0) 2023.06.12
05 파이썬 문자형 특징3  (1) 2023.06.11
03 파이썬 문자형 특징1  (1) 2023.06.10
02. 파이썬 자료형  (2) 2023.06.09
01. 파이썬 변수편  (0) 2023.06.06