ThLee
ThLee의 기록장
ThLee
전체 방문자
오늘
어제
  • 분류 전체보기 (137)
    • 정보처리기사 (13)
    • 알고리즘&문제 (5)
    • 인공지능 (4)
    • 자연어처리(NLP) (6)
    • 파이썬 (24)
    • 앱인벤터 강좌 (21)
    • 리눅스 (4)
    • 프로젝트 (1)
    • (App)톡분석AI (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 넘파이
  • 앱인벤터 강좌
  • 판다스
  • 인공지능
  • AI
  • 정보처리기사 실기
  • 블로그
  • 앱인벤터 블로그
  • 파이썬 넘파이
  • 정보처리기사 실기 정리
  • 어플
  • 파이썬
  • 앱인벤터 무료
  • 딥러닝
  • 앱인벤터
  • 정처기
  • Python
  • 정보처리기사 정리
  • 정보처리기사
  • 블록코딩

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
ThLee

ThLee의 기록장

[파이썬] 문자열 메소드 모음
파이썬

[파이썬] 문자열 메소드 모음

2022. 4. 11. 17:22
728x90

문자열 메소드 모음

찾고자 하는 메소드가 있으시면 이미지를 참고하시고, "ctrl + f"을 이용해서 메소드를 검색해보세요.

 


수 관련

len()

- 문자열의 길이를 출력

- 반환형 : Int

string = "python"
print(len(string))
>>> 6

min() , max()

- 최솟값 또는 최댓값을 찾아서 출력

- 반환형 : Int, String

string = "Hello_Python"
print(min(string))
>>> H
print(max(string))
>>> y

int = [ 1, 2, 3, 4, 5 ]
print(min(int))
>>> 1
print(max(int))
>>> 5

count()

- 문자열 내부에 특정 문자가 등장하는 횟수를 출력

- 반환형 : Int

- count( x ) : 문자열 전 범위에서 x가 등장하는 횟수

- count( x , start ) : start 부터 x가 등장하는 횟수

- count( x , start , end ) : start ~ end 범위에서 x가 등장하는 횟수

string = "Hello_Python"
print(string.count("o"))
>>> 2
print(string.count("o",5))
>>> 1
print(string.count("o",0,4))
>>> 0 
print(string.count("o",0,5))
>>> 1

인코딩/디코딩

encode()

- 문자열을 바이트 코드인 utf-8, euc-kr, ascii 형식의 byte코드로 변환하는 것을 뜻함.

- 간단히 말하면, 문자열을 숫자로 바꾸는 형식

 

decode()

- 인코딩의 반대로써, utf-8, euc-kr, ascii 형식의 byte코드를 문자열로 변환하는 것을 뜻함.

import base64

string = "Hello"

print(string.encode("UTF-8"))
>>> b'Hello'
print(base64.b64encode(string.encode("UTF-8")))
>>> b'SGVsbG8='

string_encoding = base64.b64encode(string.encode("UTF-8"))

print(string_encoding.decode("UTF-8"))
>>> SGVsbG8=
print(base64.b64decode(string_encoding.decode("UTF-8")))
>>> b'Hello'

문자열 다루기

strip()

- 문자열의 양쪽의 공백을 제거한 문자열을 출력

- 반환형 : String

- strip("@") : 문자열의 양쪽의 @를 제거한 문자열을 출력

string = "     Hello     "
print(string.strip())
>>> Hello

string = "@@@@@Hel@@@lo@@@@@"
print(string.strip("@"))
>>> Hel@@@lo

lstrip()

- 문자열의 왼쪽(left)의 공백을 제거한 문자열을 출력

- 반환형 : String

rstrip()

- 문자열의 오른쪽(right)의 공백을 제거한 문자열을 출력

- 반환형 : String 

 

center(길이, 채움문자)

- 문자열을 '길이'의 중앙에 위치하고, 나머지는 양쪽 동일하게 '채움문자'로 채움

- 채움문자 생략 가능

string = "Hello_Python"
print(string.center(20))
>>>     Hello_Python    
print(string.center(20,"@"))
>>> @@@@Hello_Python@@@@

ljust(길이, 채움문자)

- 문자열을 '길이'의 왼쪽에 정렬하고, 나머지는 오른쪽에 '채움문자'로 채움

- 채움문자 생략 가능

 

rjust(길이, 채움문자)

- 문자열을 '길이'의 오른쪽에 정렬하고, 나머지는 왼쪽에 '채움문자'로 채움

- 채움문자 생략 가능

string = "Hello_Python"
print(string.ljust(20))
>>> Hello_Python        
print(string.ljust(20,"@"))
>>> Hello_Python@@@@@@@@

print(string.rjust(20))
>>>         Hello_Python
print(string.rjust(20,"@"))
>>> @@@@@@@@Hello_Python

isspace()

- 문자열이 공백으로만 이루어져 있으면 True, 아니면 False

string = "Hello Python"
print(string.isspace())
>>> False

string = "       "
print(string.isspace())
>>> True

split()

- 문자열을 일정한 규칙으로 잘라서 리스트로 만들어 주는 메소드

- split() : 문자열을 공백으로 나누고 리스트로 만듬

- split("구분자") : 문자열을 '구분자'로 나누고 리스트로 만듬

- split("구분자", 분할횟수) : 문자열을 '구분자'로 횟수만큼 나누고 리스트로 만듬

string = "H e l l o _ P y t h o n"

print(string.split())
>>> ['H', 'e', 'l', 'l', 'o', '_', 'P', 'y', 't', 'h', 'o', 'n']
print(string.split("_"))
>>> ['H e l l o ', ' P y t h o n']
print(string.split(" ",5))
>>> ['H', 'e', 'l', 'l', 'o', '_ P y t h o n']

splitlines()

- 여러개의 줄로 이루어진 문자열을 '줄'로 구분하여 리스트로 만들어 주는 메소드

string = '''
Hello
Python
test
'''

print(string.splitlines())
>>> ['', 'Hello', 'Python', 'test'] 

string = '''Hello
Python
test
'''

print(string.splitlines())
>>> ['Hello', 'Python', 'test']

replace()

- 기존 문자에 있는 문자 old를 new로 교체하고, 그 결과를 반환하는 메소드

- replace(old,new)

- replace(old,new,count)

string = "Hello_Python"
print(string.replace("o","#"))
>>> Hell#_Pyth#n
print(string.replace("o","#",1))
>>> Hell#_Python

join()

- 매개변수로 들어온 리스트에 있는 요소 하나하나를 합쳐서 하나의 문자열로 바꾸어 반환하는 메소드

- "구문자".join(리스트)

- 예시를 보시는게 더 이해가 빠를거 같아요

str_list = [ 'a', 'b', 'c', 'd', 'e']

print(str_list)
>>> ['a', 'b', 'c', 'd', 'e']
print("(^^)".join(str_list))
>>> a(^^)b(^^)c(^^)d(^^)e

zfill()

- 문자열이 특정 길이가 되도록, 문자열 앞에 0으로 채움.

- zfill(특정 길이)

string = "Hello_Python"
print(string.zfill(20))
>>> 00000000Hello_Python
print("HiHi".zfill(20))
>>> 0000000000000000HiHi

상태 

isalnum()

- 문자열이 알파벳과 숫자로만 이루어져 있으면 True, 아니면 False

string1 = "Hello"
string2 = "헬로"
string3 = "Hello 헬로 123"

print(string1.isalnum())
>>> True
print(string2.isalnum())
>>> True
print(string3.isalnum())    # 공백 때문에 False
>>> False

isalpha()

- 문자열이 알파벳(영어, 한글 등)으로만 이루어져 있으면 True, 아니면 False

string1 = "Hello"
string2 = "헬로"
string3 = "Hello 헬로 123"

print(string1.isalpha())
>>> True
print(string2.isalpha())
>>> True
print(string3.isalpha())
>>> False

isdigit() , isnumeric()

- 문자열이 숫자만 포함하면 True, 아니면 False

string1 = "Hello"
string2 = "헬로"
string3 = "Hello 헬로 123"
string4 = "123"
string5 = "123원"

print(string1.isdigit())
>>> False
print(string2.isdigit())
>>> False
print(string3.isdigit())
>>> False
print(string4.isdigit())
>>> True
print(string5.isdigit())
>>> False

isdecimal()

- 문자열이 10진수이면 True, 아니면 False

string1 = "512"
string2 = "512.5"
string3 = "Hello"
string4 = "Hello512"
string5 = "Hello 512"

print(string1.isdigit())
>>> True
print(string2.isdigit())
>>> False
print(string3.isdigit())
>>> False
print(string4.isdigit())
>>> False
print(string5.isdigit())
>>> False

islower()

- 문자열이 모두 소문자면 True, 아니면 False

string1 = "Hello"
string2 = "hello"

print(string1.islower())
>>> False
print(string2.islower())
>>> True

isupper()

- 문자열이 모두 대문자면 True, 아니면 False

string1 = "HELLO"
string2 = "hello"
string3 = "H123"
string4 = "123"

print(string1.isupper())
>>> True
print(string2.isupper())
>>> False
print(string3.isupper())
>>> True
print(string4.isupper())
>>> False

lower()

- 문자열 내 모든 대문자를 소문자로 변환

string = "Hello"
print(string.lower())
>>> hello

upper()

- 문자열 내 모든 소문자를 대문자로 변환

string = "Hello"
print(string.upper())
>>> HELLO

swapcase()

- 문자열 내 소문자는 대문자로, 대문자는 소문자로 변환

string = "Hello"
print(string.swapcase())
>>> hELLO

title()

- 문자열을 제목 형식에 맞게 시작은 대문자로, 나머지는 소문자로 변환

string = "hello i'm python"
print(string.title())
>>> Hello I'M Python

istitle()

- 문자열이 제목 형식에 맞게 대문자로 시작하고, 나머지는 소문자면 True, 아니면 Fasle

string1 = "hello python"
string2 = "Hello Python"

print(string1.istitle())
>>> False
print(string2.istitle())
>>> True

capitalize()

- 문자열 내 첫번째 문자를 대문자로 변환하고, 나머지는 소문자로 변환

- title()과 약간 다름, 비교해볼 것.

string = "hello i'm python"
print(string.capitalize())
>>> Hello i'm python

검색

find()

- 문자열에 찾고 싶은 문자 x를 입력하면, 그 문자x가 위치하는 인덱스를 반환.

- 만약 문자x가 없으면 -1 반환

- find(x) : 문자열 내 문자x의 인덱스 찾기

- find(x , start ) : 문자열 내 문자x의 인덱스를 start지점 이후부터 찾기

- find(x , start , end ) : 문자열 내 문자x의 인덱스를 start~end 범위에서 찾기

string = "Hello Python"

print(string.find("o"))
>>> 4
print(string.find("o", 5))
>>> 10
print(string.find("o", 5, 9))
>>> -1

rfind()

- 문자열에 찾고 싶은 문자x를 오른쪽(right)부터 확인하여 인덱스를 반환.

- 만약 문자x가 없으면 -1 반환

- rfind(x)

- rfind(x , start )

- rfind(x, start , end )

string = "Hello Python"

print(string.rfind("o"))
>>> 10
print(string.find("o"))
>>> 4

index()

- find()와 기능은 동일하나, 문자x가 없으면 ValueError 발생

- index(x) 

string = "Hello Python"

print(string.index("o"))
>>> 4
print(string.find("k"))
>>> -1
print(string.index("k"))
>>> ValueError: substring not found

rindex()

- index()와 기능은 동일하나, 오른쪽(right)부터 체크

- rindex(x)

string = "Hello Python"

print(string.rindex("o"))
>>> 10
print(string.index("o"))
>>> 4

startswith()

- 문자열이 문자x와 똑같은 문자열로 시작하면 True, 아니면 False

- startswith(x, start)

string ="Hello Python"

print(string.startswith("Hel"))
>>> True
print(string.startswith("HeLLo"))
>>> False

endswith()

- 문자열 끝(right)부터 문자x와 똑같은 문자열로 시작하면 True, 아니면 False

- endswith(x, start, end)

string ="Hello Python"

print(string.endswith("hon"))
>>> True
print(string.endswith("python"))
>>> False

 

728x90

'파이썬' 카테고리의 다른 글

[파이썬] 데이터 타입(Data Type) 종류  (0) 2022.04.14
[파이썬] 튜플(Tuple) 메소드 모음  (0) 2022.04.14
[파이썬] 리스트 메소드 모음  (0) 2022.04.12
[파이썬] 문자열 자료형  (0) 2022.03.31
[파이썬]파이썬 숫자형  (0) 2022.03.31
    '파이썬' 카테고리의 다른 글
    • [파이썬] 튜플(Tuple) 메소드 모음
    • [파이썬] 리스트 메소드 모음
    • [파이썬] 문자열 자료형
    • [파이썬]파이썬 숫자형
    ThLee
    ThLee
    # 포트폴리오 https://thleewave.notion.site/ThLee-1fef9e057dbf40d5b7b851ab0abccf36?pvs=4 #Github - https://github.com/git-ThLee #IoT 스타트업 -Full-stack -2021.01~2021.07 -사용기술 : fluterr, arduino, node.js #코딩학원 강사 - 2019.11 ~ 진행중 - 언어 : python, 블록 코딩 - 플랫

    티스토리툴바