본문 바로가기
Python/Basic

[파이썬, Python] 문자열(string) 다루기 - 문자열 함수, 문자열 인덱싱, 슬라이싱

by coding-choonsik 2023. 3. 6.
728x90
반응형
SMALL

1. 문자열(string) 이란❓

  • 문자, 단어 등으로 구성된 문자들의 집합
  • 작은따옴표(' ') 또는 큰따옴표(" ")로 감싼 데이터
# 작은 따옴표로 문자열 저장하기
str1 = '오늘은 월요일 입니다'
print(str1)
print(type(str1))

>>> 오늘은 월요일 입니다
<class 'str'>
# 큰 따옴표로 문자열 저장하기
str2 = "오늘은 월요일 입니다"
print(str2)
print(type(str2))

>>> 오늘은 월요일 입니다
<class 'str'>

 

※ 작은따옴표(' ')와 큰 따옴표(" ")를 동시에 사용할 수 있다.

str3 = '나는 말했다. "오늘은 월요일 수업입니다"'
print(str3)

str4 = "나는 말했다. '오늘은 월요일 수업입니다'"
print(str4)

>>> 나는 말했다. "오늘은 월요일 수업입니다"
나는 말했다. '오늘은 월요일 수업입니다'
  • 작은따옴표 또는 큰따옴표를 3개 연달아서 사용하면 입력된 문자열을 입력한 그대로 출력된다.
str5 = '''나:
"오늘은 
월요일
수업입니다."'''
print(str5)

>>> 나:
"오늘은 
월요일
수업입니다."

2. 문자열 인덱싱(Indexing)

  • 문자열에 번호를 매겨 특정 문자를 찾을 수 있는 기능
  • index: 0부터 순서대로 진행되는 정수
str = '문자열에 번호를 매겨 특정 문자를 찾을 수 있는 기능'
print(str) 

>>> 문자열에 번호를 매겨 특정 문자를 찾을 수 있는 기능

print(str[0])
print(str[1])
print(str[12])
print(str[-1])  # 끝에서 첫번째
print(str[-2])  # 끝에서 두번째

>>> 문
자
특
능
기

 

3. 문자열 슬라이싱(Slicing)

  • 문자열에서 원하는 범위를 추출하는 기능
str1 = '문자열에서 원하는 범위를 추출하는 기능'
print(str1)

>>> 문자열에서 원하는 범위를 추출하는 기능

print(str[0:5])    # 0부터 5가 되기 전까지(5를 포함하지 않음)
print(str[7:13])
print(str[:13])    # 처음부터 13이 되기 전까지
print(str[6:])     # 6부터 끝까지
print(str[-5:-2])  # -5번째 인덱스에서 -2번째 인덱스 전까지

>>> 문자열에서
하는 범위를
문자열에서 원하는 범위를
원하는 범위를 추출하는 기능
하는

4. 문자열 함수

4-1. count()

  • 문자열에서 매개변수로 전달된 문자열의 출현 횟수를 반환
str = '문자열 함수는 문자열과 관련된 여러가지 기능들을 담고 있다'
str.count('문')  

>>> 2

✔ 파이썬 내장함수

  • print('안녕') : 파이썬의 기본함수. 파이썬 object class에 내장된 함수. python 메모리만 생성되면 사용 가능
  • str.count('문') : 변수의 메모리가 생성된 후 기능을 사용

 

 
숫자형 데이터도  count()함수를 사용할 수 있을까?
 
num = 10
num.count(1)   


>>> AttributeError: 'int' object has no attribute 'count'

에러가 발생한다.

print(str.count('문자'))
print(str.count('문장'))  

>>> 2
0   # 문자가 포함되지 않을 경우 0을 반환

4-2. find()

  • 매개변수로 전달된 문자열이 처음 나오는 위치를 인덱스로 반환
str = '문자열 함수는 문자열과 관련된 여러가지 기능들을 담고 있다'

print(str.find('문'))   
print(str.find('함'))
print(str.find('반')) 

print(str.rfind('문')) 

>>> 0   # 0번째 인덱스
4
-1      # 문자가 없을 시 -1 반환
8       # 끝에서 부터 문자열이 나오는 위치를 반환

4-3. index()

  • 매개변수로 전달된 문자열이 처음 나오는 위치를 인덱스로 반환(찾지 못할 경우 에러!)
  • 오류처리(try-except)시 사용할 수 있음
str = '문자열 함수는 문자열과 관련된 여러가지 기능들을 담고 있다'

print(str.index('문'))   
print(str.index('함'))
print(str.index('반'))   

>>> 0    # 0번째 인덱스
4
ValueError: substring not found  # 문자가 없을 시 에러

4-4. replace()

  • 특정 문자열을 치환
print(str)
print(str.replace('기능','함수'))

>>> 문자열 함수는 문자열과 관련된 여러가지 기능들을 담고 있다
문자열 함수는 문자열과 관련된 여러가지 함수들을 담고 있다

4-5. upper() & lower()

  • upper(): 문자열을 모두 대문자로 변환
  • lower(): 문자열을 모두 소문자로 변환
str = 'APPLE, apple, Apple'
print(str.upper())
print(str.lower())

>>> APPLE, APPLE, APPLE
apple, apple, apple

4-6. strip(), lstrip(), rstrip()

  • strip(): 문자열의 양쪽 공백을 제거
  • lstrip(): 문자열의 왼쪽 공백을 제거
  • rstrip(): 문자열의 오른쪽 공백을 제거
str = '           Hello          Python           '
print(str)
print(str.strip())
print(str.lstrip())
print(str.rstrip())

>>>            Hello          Python           
Hello          Python
Hello          Python           
           Hello          Python

str 문자열에서 공백을 전체 제거하려면?

print(str.replace(' ',''))

>>> HelloPython

4-7. join()

  • 문자열에 특정 문자열을 삽입
  • 다른 함수와 달리 사용순서가 달라서 헷갈리지 않게 주의해야 한다.
str = 'Hello'
print('🙌'.join(str))
print(str.join('🙌'))

>>> H🙌e🙌l🙌l🙌o
🙌  # 오류(?) 이상하게나온다

5. 문자열에서 특정 문자나 구문이 있는지 확인하기

  • 파이썬의 in 문 사용하기
str = "오늘은 즐거운 파이썬 수업이 있는 날"
print("오늘" in str)

>>> True

print("어제" in str)

>>> False

 

 

 

728x90
반응형
LIST