KDT 수업/Python
[파이썬] 05. 문자열 다루기
니니는 진짜 전설이다
2023. 3. 6. 17:02
1. 문자열 다루기
- 변수에 문자열을 담을 수 있다.
- ' ' 작은 따옴표를 이용해도 되고, " " 큰따옴표를 이용해도 된다.
str1 = '오늘은 파이썬 3일차 수업입니다'
print(str1)
>>오늘은 파이썬 3일차 수업입니다
str2 = "오늘은 파이썬 3일차 수업입니다"
print(str2)
>> 오늘은 파이썬 3일차 수업입니다
- ' 또는 " 를 문자열로 출력하고 싶은 경우에는 ' '' '' ' 또는 '' ' ' '' 로 사용한다.
str3 = '류지 : "오늘은 파이썬 3일차 수업입니다:"'
print(str3)
str4 = "류지 : '오늘은 파이썬 3일차 수업입니다:'"
print(str4)
>>
류지 : "오늘은 파이썬 3일차 수업입니다:"
류지 : '오늘은 파이썬 3일차 수업입니다:'
- 변수에 주석을 담을 수 도 있다.
'''
여기는 주석!!
'''
str5 = ''' 류지:
파이썬 3일차 수업 '''
print(str5)
>>
류지:
파이썬 3일차 수업
2. 문자열 인덱싱(indexing)
- 문자열에 번호를 매겨 특정 문자를 찾을 수 있는 기능.
- 0부터 시작한다.
- -1은 문자열의 뒤에서부터 세는 첫번째 순서이다.
str = '문자열에 번호를 매겨 특정 문자를 찾을 수 있는 기능'
print(str)
>>문자열에 번호를 매겨 특정 문자를 찾을 수 있는 기능
print(str[0])
print(str[1])
print(str[12])
print(str[-1]) #뒤에서부터 셈
print(str[-2])
>>
문
자
특
능
기
3. 문자열 슬라이싱(slicing)
- 문자열에서 원하는 부분을 잘라 반환해주는 기능.
- 변수명[왼:오] 에서 왼쪽부터 오른쪽 전까지를 추출한다.
왼쪽이 비어있으면 처음부터 오른쪽 입력값 전까지 추출한다는 뜻이고, 오른쪽이 비어있으면 왼쪽 입력값부터 끝까지 추출한다는 뜻이다.
str = '문자열에서 원하는 범위를 추출하는 기능'
print(str)
>> 문자열에서 원하는 범위를 추출하는 기능
print(str[0:5]) # 0부터 5전까지 => 0부터 4까지
print(str[7:13])
print(str[:13]) # 왼쪽을 안써주면 처음부터! 처음부터 13 직전까지
print(str[6:]) # 오른쪽을 안써주면 끝까지! 6부터 끝까지
>>
문자열에서
하는 범위를
문자열에서 원하는 범위를
원하는 범위를 추출하는 기능
4. 문자열 함수
- count( )
: 문자열에서 매개변수로 전달된 문자열의 출현 횟수를 반환함. 해당 문자가 몇번 나오는지를 알려준다.
'문자열 함수는 문자열과 관련된 여러가지 기능들을 담고 있다'.count('문')
>>2
# 변수에 문자열을 넣어서 count()를 이용하는 경우
str = '문자열 함수는 문자열과 관련된 여러가지 기능들을 담고 있다'
str.count('문') # str안에 '문'자가 몇번 나왔는지 알려줌
>>2
존재하지 않는 문자를 찾는 경우 0개라고 나온다.
print(str.count('문자'))
print(str.count('문장'))
>>
2
0
count( ) 함수는 string형에만 쓸 수 있는데 숫자형을 입력하는 경우에는 오류가 난다.(AttributeError)
num = 10
num.count('10')
>> AttributeError: 'int' object has no attribute 'count'
- find( )
: 매개변수로 전달된 문자열이 처음 나오는 위치를 인덱스로 반환시킨다.
print(str.find('문')) # index번호가 0
print(str.find('함'))
>>
0
4
# rfind() : 뒤에서부터 찾기
print(str.rfind('문')) # 문자열이 나오는 위치를 끝에서부터 찾아 반환시킨다
>>8
find()를 이용해 없는 문자를 찾는 경우 -1이 나온다.(인덱스에는 음수가 없기 때문)
#없는 문자 찾을 때
print(str.find('뿅'))
>> -1
- index( )
: 매개변수로 전달된 문자열이 처음 나오는 위치를 인덱스로 반환한다.
find()와는 다르게 찾는 문자가 없는 경우 에러가 뜬다.
print(str.index('문')) #0
print(str.index('함')) #4
print(str.index('뿅')) # 값이 없는 경우 ValueError: substring not found
>>
0
4
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-14-4658d8097ca5> in <module>
2 print(str.index('문')) #0
3 print(str.index('함')) #4
----> 4 print(str.index('뿅')) # 값이 없는 경우 ValueError: substring not found
ValueError: substring not found
- replace( )
: 특정 문자열을 치환해준다.
str = '문자열 함수는 문자열과 관련된 여러가지 기능들을 담고 있다'
print(str.replace('기능', '함수'))
>>문자열 함수는 문자열과 관련된 여러가지 함수들을 담고 있다
print(str)
>>문자열 함수는 문자열과 관련된 여러가지 기능들을 담고 있다
# 이렇게 하면 적용되지는 않아서 여전히 바뀌지 않은 상태로 나옴.
# 바꾸고싶으면 값을 다시 넣어줘야함 ( str = str.replace('기능','함수') 이런식으로!! )
- upper( )
: 문자열을 모두 대문자로 변환
lower( )
: 문자열을 모두 소문자로 변환
str = 'APPLE apple Apple'
print(str)
print(str.upper())
print(str.lower())
>>
APPLE apple Apple
APPLE APPLE APPLE
apple apple apple
- strip( )
: 문자열의 양쪽 공백을 제거
lstrip( )
: 문자열의 왼쪽 공백을 제거(left)
rstrip( )
: 문자열의 오른쪽 공백을 제거(right)
str = ' Hello Python '
print(str)
print(str.strip())
print(str.lstrip())
print(str.rstrip())
print(str.replace(' ', ''))
>>
Hello Python
Hello Python
Hello Python
Hello Python
HelloPython
- join( )
: 문자열에 특정 문자열을 삽입
str = 'Hello'
print('🙋♀️'.join(str))
# print(str.join('🙋♀️'))
>>
H🙋♀️e🙋♀️l🙋♀️l🙋♀️o