티스토리 뷰
이전까지는 알파벳과 단어들을 외웠다면 그들의 다양한 형태와 문법, 문장을 만들기위한 능동 수동 등 중요한 부분이라고 생각한다. 백준 알고리즘 브론즈에서 실버로 올라가기위한 기본적으로 알고 있어야 하는 것들, 알고있으면 편한 것들에 대해 다뤄보겠다.
Method (메서드)
: 객체에 속한 함수. 객체의 상태를 조작하거나 동작을 수행한다고 보면 된다. 함수긴 한데, 일반적인 함수와는 다르게 객체에 속해있는 함수라고 풀어서 말할 수 있다.
- class(클래스) 내부에 정의되는 함수
- class(클래스)는 '타입을 표현하는 방법'이며 해당 단원을 배우기 전에 이미 우린 사용해왔음
print(help(str))을 통해 str 클래스의 어떤 모델들이 있는지 확인 할 수 있다. int, list 등등 모두 가능하다. 어떠한 메서드를 쓰고싶을때 검색해보면 간단한 설명과 사용 방식에 대해 알 수 있다. 중요한 것은 메서드 자체는 어떤 클래스에 속해있는 함수이며, 해당하는 클래스(데이터)의 타입별로 다양한 기능을 가진 메서드가 존재한다.
아래에서 다양한 메서드에 대해 살펴보려고 한다.
문자열 Method
문자열 조회/탐색 및 검증 Method
메서드에서 가장 중요하다고 생각하는 것은 반환을 하는지, 반환을 하지 않는지와 어디 위치에 어떤 요소가 들어가면서 작동하는지 알아야 한다는 것이다. 여태까지 많이 하는 실수 중 하나가 반환이 없는데, 다른 변수에 할당을 하게되면 결과값이 None이 나오는 경우가 많았다. 외우지 못한다면 오류값을 보면서 None 이 나온다면 함수 사용중 반환 안되는 값이 없는지 먼저 찾아보는 것도 좋을 것 같다.
Method(s는 문자열) | 설명(Method 글자에 is~가 있다면 반환 값이 대부분 True / False) |
s.find( x ) | 문자 x의 첫번째 위치를 반환. 없으면, -1을 반환한다. |
s.index( x ) | 문자 x의 첫째 위치를 반환. 없으면 오류 발생 |
s.isalpha( ) | 문자열이 알파벳으로만 이루어져 있는지에 대한 여부 반환 |
s.isupper( ) | 문자열이 알파벳 문자의 대문자만 있는지에 대한 여부 반환 |
s.islower( ) | 문자열이 알파벳 문자의 소문자만 있는지에 대한 여부 반환 |
# 오늘의 테스트 워드
word = 'codiNg larVa'
other_word = 'PA RK'
# 문자열 a의 첫번째 위치를 찾아서 반환한다.find()
spell_find = word.find('a')
print(word) # codiNg larvA 원본 변화 x
print(spell_find) # index 값인 8을 반환
spell_find = word.find('b') # 원본에 없는 문자열 'b'
print(spell_find) # 원본에 없으므로 -1 반환
# 문자열 g의 첫번째 위치를 찾아서 반환한다.index()
spell_index = word.index('g')
print(word) # codiNg larvA 원본 변화 x
print(spell_index) # index 값인 5를 반환
spell_index = word.index('z') # 원본에 없는 문자열 'z'
print(spell_index) # ValueError: substring not found
# 문자열이 알파벳으로만 이루어져 있는가.isalpha()
result_1 = word.isalpha()
print(word) # codiNg larvA 원본 변화 x
print(result_1) # False word[6]에 공백 존재. 공백을 지운다면 True 반환
# 문자열이 알파벳 문자의 대문자만 있는지.isupper()
result_2 = other_word.isupper()
print(other_word) # PA RK 원본 변화 x
print(result_2) # True 대문자만 있음, 공백은 제외한다
# 문자열이 알파벳 문자의 소문자만 있는지.islower()
result_3 = other_word.islower()
print(other_word) # PA RK 원본 변화 x
print(result_3) # False 대문자만 있음, 공백은 제외한다
문자열 조작 Method (새 문자열 반환)
Method(s는 문자열, [ ] 은 optional 요소) | 설명 |
s.replace(old, new[, count]) | 바꿀 대상 글자(old)를 새로운 글자(new)로 대체하여 반환 |
s.strip( [ chars ] ) | 공백이나 특정 문자를 제거 |
s.split( sep = None, maxsplit = -1 ) | 공백이나 특정 문자를 기준으로 분리 |
'separator'.join( [ iterable ] ) | 가장 많이 쓰는 메서드로 split( )의 반대되는 성향을 갖고 구분자인 'separator'를 iterable한 요소 사이에 넣어서 합침 |
s.capitalize( ) | 문자열 가장 첫번째 글자를 대문자로 변환 |
s.title( ) | 문자열 내 띄어쓰기 기준으로 단어의 첫 글자는 모두 대문자로, 나머지는 소문자로 변환 |
s.upper( ) | 모든 알파벳을 대문자로 변경 |
s.lower( ) | 모든 알파벳을 소문자로 변경 |
s.swapcase( ) | 대문자는 소문자로, 소문자는 대문자로 변경 |
# 바꿀 대상 글자(old)를 새로운 글자(new)로 대체후 반환
# s.replace(old, new[, count])
word = 'Coding neVer eNding stOry'
new_word_1 = word.replace('e', 'a') # e를 a로 대체 반환
new_word_2 = word.replace('ing', 'er') # ing를 er로 대체 반환
new_word_3 = word.replace('e', 'a', 1) # e를 a로 대체 반환, count 1회
print(word) # Coding neVer eNding stOry
print(new_word_1) # Coding naVar aNding stOry -> e 모두 a로 바꾸고 반환
print(new_word_2) # Coder neVer eNder stOry -> ing 모두 er로 바꾸고 반환
print(new_word_3) # Coding naVer eNding stOry -> 왼쪽에서 count횟수만큼 변환 후 반환
# 문자열 시작과 끝 양쪽의 공백이나 특정 문자 제거
# s.strip([chars])
other_word = ' Method is Too HARD '
new_word_4 = other_word.strip(' DRM') # 반드시 양쪽 끝이 제거. 오른쪽 공백,D,R / 왼쪽 M 제거
print(other_word) # Method is Too HARD
print(new_word_4) # ethod is Too HA -> 공백, M, R, D 삭제 후 반환
# 문자열 사이 공백이나 특정 문자를 기준으로 분리
# s.split(sep = None, maxsplit = -1)
other_word_2 = '2024.01.22-월요일 저녁 9시 30분'
new_word_5 = other_word_2.split()
print(other_word_2) # 2024.01.22-월요일 저녁 9시 30분
print(new_word_5) # ['2024.01.22-월요일', '저녁', '9시', '30분'] -> 공백을 기준으로 나눠 반환
new_word_6 = other_word_2.split(sep=".", maxsplit = 1) # .을 기준으로 자르며, 1회만 자른다
print(other_word_2) # 2024.01.22-월요일 저녁 9시 30분
print(new_word_6) # ['2024', '01.22-월요일 저녁 9시 30분'] -> 문자열.으로 나눈 후, 한번만 나눔
# iterable한 데이터에 separator 요소를 첨가
# 'separator'.join( [ iterable ] )
other_word_3 = ['2024', '01', '22', '월요일']
new_word_7 = ' '.join(other_word_3) # 요소 사이에 공백을 추가하여 반환한다
print(other_word_3) # ['2024', '01', '22', '월요일']
print(new_word_7) # 2024 01 22 월요일 -> 요소 사이에 공백을 추가하여 반환
# 문자열 가장 첫번째 글자를 대문자로 변환
# s.capitalize()
other_word_4 = 'codiNg lArVa'
new_word_8 = other_word_4.capitalize()
print(other_word_4) # codiNg lArVa
print(new_word_8) # Coding larva -> 첫글자를 대문자로 만들고 나머지 글자는 소문자로 반환
# 문자열 내 띄어쓰기 기준으로 단어의 첫 글자는 모두 대문자로, 나머지는 소문자로 변환
# s.title()
new_word_9 = other_word_4.title()
print(other_word_4) # codiNg lArVa
print(new_word_9) # Coding Larva -> 공백기준으로 글자들의 첫 글자를 대문자, 이외 소문자로 반환
# 문자열의 모든 알파벳을 대문자로 변경
# s.upper()
other_word_5 = 'cOdInG WorlD1996'
new_word_10 = other_word_5.upper()
print(other_word_5) # cOdInG WorlD1996
print(new_word_10) # CODING WORLD1996 -> 모든 알파벳을 대문자로 반환
# 문자열의 모든 알파벳을 소문자로 변경
# s.lower()
new_word_11 = other_word_5.lower()
print(other_word_5) # cOdInG WorlD1996
print(new_word_11) # coding world1996 -> 모든 알파벳을 소문자로 반환
# 문자열안의 모든 알파벳 대문자/소문자를 서로 변경
# s.swapcase()
new_word_12 = other_word_5.swapcase()
print(other_word_5) # cOdInG WorlD1996
print(new_word_12) # CoDiNg wORLd1996 -> 알파벳의 대/소문자가 스왑하여 반환
다음 노트는 리스트에서 많이 사용되는 Method에 알아볼 예정이다.
'일상코딩 > 노트' 카테고리의 다른 글
Python Method (세트 Method) (0) | 2024.01.24 |
---|---|
Python Method (리스트 Method) (0) | 2024.01.23 |
Python Functions(1) [함수의 구조] (0) | 2024.01.21 |
Python 데이터 타입(Boolean, None) (0) | 2024.01.19 |
Python 데이터타입 (비시퀀스 : 딕셔너리, 세트) (0) | 2024.01.18 |
- Total
- Today
- Yesterday
- ChatGPT
- vue3
- JavaScript
- Django
- 카운팅정렬
- CodeTree
- 연산자
- app
- 재귀
- Database
- SQLite
- honeymoney
- 순열
- ssafy
- Authentication System
- Sequence types
- Python
- SQL
- baby-gin
- Method
- dfs
- vue
- 함수
- basic syntax
- 삼성청년SW아카데미
- 백준
- Component
- views.py
- HTML
- refactoring
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |