Python

3. Python - 문자열 처리(문자열, 문자열 슬라이싱(Slicing), 문자열 함수(function))

JE_:) 2023. 5. 12. 15:13
728x90

 

 

문자열은 파이썬의 자료형(Data Type) 중, 하나로 이를 처리하기 위한 다양한 메서드와 함수가 제공된다.

 

 

 

* 문자열의 자료형에 대한 내용은 이전 포스팅을 참고해주세요 :) 

 

1. Python - 자료형(Data type) 종류(스칼라, 컨테이너, 시퀀스) 및 주로 사용되는 자료형 (수치, 불, 군

파이썬은 다른 프로그래밍 언어인 C, Java와는 다르게 변수를 선언할 때, 자료형을 명시적으로 선언하지 않는다. 즉, 변수를 미리 지정하지 않아도 된다. 이러한 특징을 가진 프로그래밍 언어를 '

01-study-for-me.tistory.com

 

 

 

 

 

 

문자열(String)

 

하나 이상의 연속된 문자(Character)들의 나열로, 시퀀스(Sequence) 자료형에 해당된다.

큰 따옴표(")작은 따옴표(')를 사용해 문자를 감싸는 형태로 문자열을 생성한다.

( 큰 따옴표 3개로도 생성할 수 있다. (""") 이때, 문장의 앞뒤에 줄바꿈이 추가되는 것을 확인하자.)

 

python 문자열 생성

 

 

 

 

 


 

 

 

 


문자열 슬라이싱(Slicing)

 

연속적인 객체에 범위를 지정하여 원하는 부분으로 잘라내는 작업을 말한다.

(이때, 연속적인 객체이므로 문자열 뿐만 아닌, 튜플 / 리스트에도 사용할 수 있다.)

 

슬라이싱 작업을 수행하면 새로운 객체를 생성한다. 

슬라이싱을 위해 접근할 때는 인덱스를 지정하여 접근 및 수행한다.

 

 

 


문자열 [ 시작 인덱스 값(start) : 끝 인덱스 값(end) : step ]

  • 시작 인덱스 값(start), 끝 인덱스 값(end), step 모두 양수와 음수를 가질 수 있다.
  • start : 슬라이싱을 시작할 위치로 기본 값은 0이다.
  • end : 슬라이싱을 끝내고자 하는 위치로, 지정할 수 있으며 빈칸으로 입력 시 마지막까지 수행한다. 
  • step : 기입 시, 해당 숫자만큼 건너뛰어 추출한다.

 

 

str = "Hello World!"

print(str[2:7])   # 결과 : llo W
print(str[4:])    # 결과 : o World!
print(str[:3])    # 결과 : Hel

### tip. 슬라이싱한 값을 사용하고 싶다면 따로 저장해야 한다!

str2 = str[:5]
print(str2)       # 결과 : Hello

 

 

 

 


 

 

 

 


다양한 문자열 처리함수

파이썬에서는 문자열을 다루기 위한 다양한 문자열 함수를 제공하고 있다. 

 

 

함수이름 의미 사용법
lower() 또는 casefold() 소문자로 변환 "PYTHON".lower()

# 결과 : python
upper() 대문자로 변환 "python".upper()

# 결과 : PYTHON
isupper() / islower() 대문자 / 소문자인지 확인
결과로는 True, False 출력 

(tip. 대소문자가 모두 입력된 경우에는 False가 나온다.)
"python".isupper()

# 결과 : False
replace(변경할 문자, 대체할 문자, 횟수) 문자열 변환 "learning java".replace("java","python")

# 결과 : learning python
index(문자, start, end) 찾고자 하는 문자열의 인덱스 값
(없는 경우 에러 발생)
"learning python".index("p")

# 결과 : 9
find (문자, start, end) 찾고자 하는 문자열의 인덱스 값
(없는 경우 -1 출력)
"learning python".find("f")

# 결과 : f
count(문자열) 문자열이 포함된 횟수 "learning python".count("n")

# 결과 : 3
len(문자열) 문자열 길이 len("python")

# 결과 : 6

 

 

함수이름 의미 사용법
capitalize() 문자열의 첫번째(index 0) 문자를 대문자로 변환 "python".capitalize()

# 결과 : Python
center(width, 지정 문자열) 문자열을 가운데 정렬
공백을 채움. (공백 외에도 지정 가능)
"Python".center(16,"*")

# 결과 *****Python*****
startswith(문자열) /
endswith(문자열)
문자열 시작 또는 끝에 해당 문자로 끝나는 경우 True, 그렇지 않은 경우 False "learning python".endswith("python")

# 결과 : True
format(문자열, ...) 문자열 안에서 표현할 값의 형식을 지정  * 추가설명 참고
isalnum() 문자열이 알파벳(a-z, A-Z) or 
숫자(0-9)로 이루어졌는지 확인
'abc123'.isalnum()

# 결과 : True
isalpha() 문자열이 알파벳(a-z, A-Z)으로만 이루어져 있는지 확인 '123!'.isalpha()

# 결과 : False
isdecimal() 문자열이 십진수(decimal)로 이루어져 있는지 확인 '0b1000'.isdecimal()

# 결과 : False
join(문자열 또는 리스트) 문자열이나 리스트를 구분자를 통해 결합 * 추가설명 참고
split(구분자, 최대횟수) 구분자를 기준으로 문자열을 나눔.
리스트 형태로 반환된다.
a = "java, python, c"
a.split(",")

# 결과 : ['java', ' python', ' c']
strip() 문자열의 앞뒤 공백 문자를 제거.
(문자열 사이에 공백문자는 제거하지 않음)
"  learning  python  ".strip()

# 결과 : learning  python
swapcase() 대문자를 소문자로, 소문자를 대문자로 변환 "Python".swapcase()

# 결과 : pYTHON
zfill(길이) 문자열 왼쪽에 '0'을 채워 길이를 맞추는 함수.
이때, 지정된 길이가 문자열의 길이보다 작은 경우는 수행되지 않는다.
"python".zfill(10)

# 결과 : 0000python

 

 

 

 

 

 


format() 함수

 

'format()' 함수는 문자열을 구성하고 출력할 때 사용되는 함수로,

지정된 형식에 맞게 값을 포맷하는데 사용된다.

 

name = "홍길동"
age = 20

print("안녕하세요, 저는 {}살 {}입니다." .format(age, name)) 

print("안녕하세요, 저는 {0}살 {1}입니다." .format(age, name))  

print("안녕하세요, 저는 {age}살 {name}입니다." .format(age=20, name="홍길동"))
print("안녕하세요, 저는 {age}살 {name}입니다." .format(name="홍길동", age=20))


# tip. 아래 방법은 python 3.6 이상에서만 사용 가능합니다.
print(f"안녕하세요, 저는 {age}살 {name}입니다.")



# 출력 결과 : 안녕하세요, 저는 20살 홍길동입니다.

 

 


join() 함수

 

문자열이나 리스트를 특정 구분자를 이용하여 결합하는 함수로,

여러 개의 문자열이나 리스트의 요소들을 하나의 문자열로 합칠 때 사용한다.

language = ['python', 'c', 'java']

print(', '.join(language))    # 출력 결과 : python, c, java


a = "사과"
b = "바나나"
c = "체리"

print('&'.join([a,b,c]))      # 출력 결과 : 사과&바나나&체리

 

이때, 여러 문자열을 합칠 때는 [ ] 안에 문자열을 넣어 사용한다. 

 


 

728x90