본문 바로가기
Python

[Python 기초] 문자열 (String)

by Air’s Big Data 2020. 3. 22.

문자열이란?

문자열(String)이란 문자, 단어 등으로 구성된 문자들의 집합을 의미한다. 

따옴표로 둘러싸여 있으면 모두 문자열이라고 보면 된다. 예를 들어 다음과 같은 것들이 문자열이다.

"Life is too short, You need Python"

"a"

"123"

 

 

문자열 인덱싱과 슬라이싱

#문자열 인덱싱이란?

인덱싱이란 무엇인가를 '가리킨다'라는 의미입니다. 인덱싱은 문자열을 배열처럼 쓰는 것으로 이해하면 됩니다.

    "파이썬은 0부터 숫자를 센다."

>>> a = "Life is too short"

a[0]:'L', a[1]:'i', a[2]:'f', a[3]:'e', a[4]:' ', ...


0부터 숫자를 센다는 것이 처음에는 익숙하지 않겠지만,

위 예에서 볼 수 있듯이 a[번호]는 문자열 안의 특정한 값을 뽑아내는 역할을 한다.

이러한 작업을 인덱싱이라고 한다.

 

  뒤에서부터 셀때는 음수 사용

>>> a = "Life is too short, You need Python"

>>> a[-2]

'o'

>>> a[-5]

'y'

 

#문자열 슬라이싱이란?

연속적인 객체들에(예 : 리스트, 튜플, 문자열) 범위를 지정해 선택해서 객체들을 가져오는 방법 및 표기법을 의미합니다.

>>> a = 'Hello world'

>>> a[0:5]

'Hello’

a[0:5]가 뜻하는 것은 a라는 문자열(문장)에서 0부터 5까지의 문자를 뽑아낸다(잘라낸다)라는 뜻입니다.

 

문자열 메소드

#문자열 계산 관련 메소드

len() : 문자열 길이
min(), max() : 문자열 내 문자, 혹은 숫자의 최소값, 최대값 (알파벳 순서, 숫자 순서 기반)
count() :  문자열 안에서 매개변수로 입력한 문자열이 몇 개 들어있는지 개수를 셈 (begin, end 위치 설정 가능)

 

#문자열에 특정 문자 들어있는지 여부, 어디에 위치하고 있는지 찾아주는 메소드

startswith() : 문자열이 매개변수로 입력한 문자열로 시작하면 True, 그렇지 않으면 False 반환 
endswith() : 문자열이 매개변수로 입력한 문자열로 끝나면 True, 그렇지 않으면 False 반환
find() : 문자열에 매개변수로 입력한 문자열이 있는지를 앞에서 부터 찾아 index 반환없으면 '-1' 반환 
rfind() : 문자열에 매개변수로 입력한 문자열이 있는지를 뒤에서 부터 찾아 index 반환없으면 '-1' 반환
index() :  find() 기능 동일하나매개변수로 입력한 문자열이 없으면 ValueError 발생
rindex() : index() 기능 동일하나뒤에서 부터 매개변수의 문자열이 있는지를 찾음

 

#숫자, 문자 포함 여부 확인하는 메소드

isalnum() : 문자열이 알파벳과 숫자로만 이루어졌으면 True, 그렇지 않으면 False
isalpha() : 문자열이 알파벳(영어, 한글 등)으로만 이루어졌으면 True, 그렇지 않으면 False
isdigit() : 문자열이 숫자만 포함하고 있으면 True, 그렇지 않으면 False, isnumeric()과 동일
isnumeric() : 문자열이 숫자로만 이루어져 있으면 True, 그렇지 않으면 False, isdigit()과 동일
isdecimal() : 문자열이 10진수 문자이면 True, 그렇지 않으면 False

 

#대문자, 소문자 여부 확인하고 변환해주는 문자열 메소드
islower() : 문자열이 모두 소문자로만 되어있으면 True, 그렇지 않으면 False
isupper() : 문자열이 모두 대문자로만 되어있으면 True, 그렇지 않으면 False
lower() : 문자열 내 모든 대문자를 모두 소문자(a lowercase letter)로 변환
upper() :  문자열 내 모든 소문자를 모두 대문자(a uppercase letter)로 변환
swapcase() : 문자열 내 소문자는 대문자로 변환, 대문자는 소문자로 변환
istitle() : 문자열이 제목 형식에 맞게 대문자로 시작하고 이후는 소문자이면 True, 그렇지 않으면 False
title() : 문자열을 제목 형식(titlecased)에 맞게 시작은 대문자로, 나머지는 소문자로 변환 
capitalize)=() : 문자열 내 첫번째 문자를 대문자로 변환하고, 나머지는 모두 소문자로 변환

 

#공백 존재 여부 확인 및 처리하기 문자열 메소드 
lstrip() : 문자열의 왼쪽에 있는 공백을 제거

rstrip() : 문자열의 오른쪽에 있는 공백을 제거
strip() : 문자열의 양쪽에 있는 공백을 제거
isspace() : 문자열이 단지 공백(whitespace)으로만 되어있을 경우 True, 그렇지 않으면 False
center(width) : 총 길이가 매개변수로 받는 문자열폭(width)만큼 되도록 공백을 추가하여 중앙 정렬

 

#문자열을 나누고, 붙이고, 교체하고, 채우는 문자열 메소드

split() : 문자열을 구분자(delimiter, separator) 기준에 따라 나누기
splitlines() : 여러개의 줄로 이루어진 문자열을 줄 별로 구분하여 리스트 생성
replace(old, new, max) : old 문자열을 new 문자열로 교체.  단, max 매개변수 있으면, max 개수 만큼만 교체하고 이후는 무시
join() :  여러개의 문자열을 구분자(separator) 문자열을 사이에 추가하여 붙이기
zfill(width) : 문자열을 매개변수 width만큼 길이로 만들되, 추가로 필요한 자리수만큼 '0'을 채움
ljust(width[, fillchar]) : 문자열을 매개변수 width만큼 길이로 만들되, 왼쪽은 원본 문자열로 채우고, 
rjust(width[, fillchar]) : 문자열을 매개변수 width만큼 길이로 만들되, 오른쪽은 원본 문자열로 채우고, 왼쪽에 추가로 필요한 자리수만큼 매개변수 fillchar 문자열로 채움

 

예제

Q1. -를 사용하여 oggy를 차례대로 출력해보시오

c = 'Hello My nick name is oggy'

출력 결과 )

o

g

g

y

 

Q2. 다음 결과를 예상해라.

str = 'today: 03.21'

ipos = str.find(':')
value = str[ipos+2:]
print(value)

 

 

[출처: edwith(파이썬 자료구조), 점프투파이썬, R Friend 님Tistory(https://rfriend.tistory.com/327)]

댓글