본문 바로가기
프로그래밍 관련/파이썬

파이썬 - str 클래스. 문자열 클래스

by 존버매니아.임베디드 개발자 2021. 11. 13.
반응형

사용방법 개요

' '  , " "  ,  """ """  <- 3가지 모두 사용 가능하다.

temp1 = "hello world"
temp2 = 'hello world'
temp3 = """hello world"""

print(temp1)
print(temp2)
print(temp3)
>>> hello world
>>> hello world
>>> hello world

여러줄 표현하는 방법

1) c언어에서와 마찬가지로 \n 을 쓰면 줄 바꿈을 의미한다.

2) 근데 큰 따음표 3개 쓰면 특징이 있는데 \n 표현 없이도 여러줄의 표현이 가능하다

temp1 = "hello world\nnew line1\nnew line2"

temp2 = """hello world
new line1
new line2"""

print(temp1)
print("******************")
print(temp2)
>>> hello world
>>> new line1
>>> new line2
>>> ******************
>>> hello world
>>> new line1
>>> new line2

문자열 길이 구하는 방법

len 함수를 사용한다.

temp1 = "hello world"
print(len(temp1))
>>> 11

 

인덱스로 접근 가능

temp1 = "hello world"

print(temp1[0])
print(temp1[1])
print(temp1[-1])
print(temp1[-2])
>>> h
>>> e
>>> d
>>> l

[-1]을 하면 제일 끝 문자를 의미한다. (hello world 의 가장 마지막 문자인 'd')

[-2]을 하면 제일 끝에서 두번째 문자 (hello world의 뒤에서 두번째 문자인 'l')

 

인덱스로 접근가능 (여러개의 문자)

temp1 = "hello world"

print(temp1[0:4])
print(temp1[:4])
>>> hell
>>> hell

1) [0:4] =>  은 인덱스 0 ~ 3을 의미한다.

따라서 temp1[0]='h' , temp1[1]='e' temp1[2]='l' temp1[3]='l'

 

2) [:4] => 이렇게 앞에 아무것도 안쓰면 [0:4]랑 같은 의미로 

temp1 = "hello world"

print(temp1[-5:-1])
print(temp1[-5:])
>>> worl
>>> world

 


문자열이 특정 패턴의 문자로 시작하는지, 특정 패턴의 문자로 끝나는지 찾는 방법

start_pattern = "hello"
end_pattern = "News"

temp1 = "hello world Korea"
temp2 = "bye world News"

if(temp1[:5]==start_pattern):
    print("temp1 -> start 패턴 일치")

if(temp1[-4:]==end_pattern):
    print("temp1 -> end 패턴 일치")

if(temp2[0:5]==start_pattern):
    print("temp2 -> start 패턴 일치")

if(temp2[-4:]==end_pattern):
    print("temp2 -> end 패턴 일치")
>>> temp1 -> start 패턴 일치
>>> temp2 -> end 패턴 일치

start pattern인 hello의 글자수가 5개 니까

temp1[:5] == start_pattern 이런식으로 체크

end pattern인 'News"의 글자수가 4개 이므로

temp1[-4:] == end_pattern 이런식으로 체크

 

좀 더 일반화 해서 써보면

start_pattern = "hello"
end_pattern = "News"

temp1 = "hello world Korea"
temp2 = "bye world News"


if(temp1[0:len(start_pattern)]==start_pattern):
    print("temp1 -> start 패턴 일치")

if(temp1[-1*len(end_pattern):]==end_pattern):
    print("temp1 -> end 패턴 일치")

if(temp2[0:len(start_pattern)]==start_pattern):
    print("temp2 -> start 패턴 일치")

if(temp2[-1*len(end_pattern):]==end_pattern):
    print("temp2 -> end 패턴 일치")

 

 

반응형