build my life

[Python] 문자열과 관련 메소드 본문

Python

[Python] 문자열과 관련 메소드

dalovee 2022. 8. 4. 14:13
728x90

1. 문자열이란?

  • 문자들이 열거되어 있으면 문자열(str)
  • 문자 하나도 문자열로 취급
  • 문자열은 Sequence 자료형
  • 문자열은 수정 불가능한 객체이다.
  • ASCII(영어키보드에 할당되는 모든 키), EUC-KR, UTF-8(세계적인 표준) 등등

 

2. 이스케이프문자(\)

  • '\' 다음에 오는 문자가 특수문자라는 것을 알린다.

 

3. Doc string

  • 따옴표 3개 이어서 쓰면 된다. Doc string 안에 위치한 문자열은 무조건 적은대로 표현된다.
  • 여러줄 주석으로도 사용된다.
"""문자열"""
'''문자열'''

 

4. 문자열 연산

  • 연결 : +
  • 반복 : *
  • 포함 여부 : in, not in
  • 논리 : ==, !=

 

5. sequence 자료형이기 때문에 슬라이싱 가능!

phone = "010-1111-2222"
phone[0:3] + phone[4:8] + phone[-4:]

 

6. String Fomatting

  • 문자열 내의 특정한 값을 변수로부터 동적으로 받아 포함시켜 문자열을 생성
name = "홍길동"
age = 20

#1문자열 연결
text = "제 이름은 " + name + "입니다. 나이는 " + str(age) + "살 입니다."
print(text) # output : 제 이름은 홍길동입니다. 나이는 20살 입니다.

#string fomatting
text = "제 이름은 {}입니다. 나이는 {}입니다."
text.format(name, age) #output : 제 이름은 홍길동입니다. 나이는 20입니다.

 

  • F-string(파이썬 3.6 이상부터 지원)
name = "홍길동"
age = 20

#f-string
text = f"제 이름은 {name}입니다. 나이는 {age}입니다."

 

7. 문자열 메소드

  • 대/소문자화하기(upper/lower)
    • 모든 문자를 대/소문자로 바꿔준다.
a = "Hello Python"
print(a.upper()) # 대문자화 : HELLO PYTHON
print(a.lower()) # 소문자화 : hello python
  • 문자열 치환(replace)
    • 매칭되는 모든 문자열을 치환한다.
text = "Hello Python"
a.replace("P", "C")

# output : Hello Cython
  • 문자열의 좌/우 공백 제거(strip)
text = "    룰루랄라      \n\n\n\n\n\n\n\n  "
print(text.strip()) # 오른쪽 : rstrip(), 왼쪽 : lstrip()

#output : '룰루랄라'
  • 문자열 분리(split)
    • 리스트 형식으로 반환한다.
    • 특정 구분자를 이용해서 문자열을 분리할 수 있다.
    • split() : 구분자를 주지 않으면 공백 기준으로 분리한다.
    • 공백이 있거나 비어있는 문자열일 경우에는 리스트에 포함시키지 않는다.
    • 특정 구분자를 줄 경우 비어있는 문자열도 리스트에 포함시킨다.
#공백을 기준으로 문자열 분리
text = "     오늘 너무 행복해." 
result = text.split() #output: ['오늘', '너무', '행복해.']

#특수문자를 기준으로 문자열 분리
text = "#8시간#파이썬#하루종일#눈아파"
text.split("#") #output : ['', '8시간', '플레이데이터', '파이썬', '하루종일', '눈아파']
  • 문자열 합치기(join)
    • split의 반대 개념
    • 특정 문자열을 기준으로 리스트에 들어있는 문자열들을 합친다.
text = "오늘 하루 너무"
result = text.split() #result = ['오늘', '하루', '너무']

# '#'으로 문자들을 연결해준다
"#".join(result) # output : 오늘#하루#너무
  • 특정 문자열로 시작하는지/끝나는지에 대한 여부 반환(startswith/endswith) : 논리값으로 반환
text = "오늘 갑자기 비가 와서 너무 슬펐다."

# 특정 문자로 시작하는지 논리값으로 반환
text.startswith("오늘") # output : True

# 특정 문자로 끝나는지 논리값으로 반환
text.endswith("하자") # output : False
  • 특정 문자의 개수 확인(count)
text = "오늘 갑자기 비가 와서 너무 슬펐다."
text.count("오") # output : 1
  • 문자열의 앞을 지정한 길이의 0으로 채우기(zfill)
a = '1'
a.zfill(5) # output : 00001

 

728x90