Programming Tools/Python_파이썬

[Python] 문자열 자료형

LiDARian 2021. 6. 17. 18:10
반응형

문자열 자료형

파이썬에서는 character와 string을 구분하지 않는다.

한줄 문자열 ' ''로 묶는다.

x = "abc"
y = 'abc'

print(x)
print(y)

출력 :
abc
abc

여러줄 문자열도 ' "로 묶는다

x ='''abc
def'''

y = """abc
def"""

print(x)
print(y)

출력 :
abc
def
abc
def


문자열 연산

인덱싱

인덱싱을 통해 k의 위치에서의 값을 구한다

string = "abcdefghi"

print(string[0])
print(string[5])
print(string[8])
print(string[-1])

출력:
a
f
i
i

슬라이싱

[s:t:p] s부터 t구간까지 p간격으로 구함

string = "abcdefghi"

print(string[0:3])
print(string[1:3])
print(string[0:8])
print(string[:-1]) # 음수를 입력하면 순환해서 인덱싱하게 된다.
# 따라서 [0:8]과 같은 결과가 나온다.
print(string[0:8:3])

출력 :
abc
bc
abcdefgh
abcdefgh
adg

[시작 번호:끝 번호]에서 끝 번호 부분을 생략하면 시작 번호부터 그 문자열의 끝까지 뽑아낸다.
[시작 번호:끝 번호]에서 시작 번호를 생략하면 문자열의 처음부터 끝 번호까지 뽑아낸다.

string = "abcdefghi"

print(string[:3])
print(string[3:])

출력 :
abc
defghi


문자열 자료형의 연산

+ 연산

+을 이용해서 문자열을 서로 연결할 수 있다.

string = "abc"
string2 = "defghi"

stringtotal = string + string2

print(stringtotal)

출력 :
abcdefghi

반복 * 연산

*을 이용해서 문자열을 반복할 수 있다.

string = "abc"
print(string)

string = string * 5
print(string)

출력 :
abc
abcabcabcabcabc

멤버 검사 in 연산자

string = "good today"

print("good" in string)
print("!" in string)

출력 :
True
False

길이 정보 len()

string = "good today"
print(len(string))

출력 :
10

escape character

\ : 다음줄과 연속이라는 표시
\ : \문자의미
\’ : ‘
\” : “
\b : 백스페이스
\n \012 : 줄바꾸기
\t : tab 키
\0xx : 8진수 출력
\0XX : 16진수 출력
\e : ESC

string = "good today"
string2 = "good\
today"
string3 = """good
today"""

print(string)
print(string2)
print(string3)

출력 :
good today
goodtoday
good
today


문자열 자료형의 메서드

클래스 안에 있는 함수를 메서드라고 한다.

파이썬에서는 문자열과 같은 자료형도 클래스로 정의하기에, 메서드를 사용할 수 있다.

string1 = "Stay hungry, Stay foolish"

print(string1.count("Stay")) # 문자열이 몇 번 반복되었나
print(string1.find("Stay")) # Stay가 나오는 위치
print(string1.find("Stay", 1)) # Stay란 단어가 두번째 나오는 위치
print(string1.find("no")) # 없으면 -1을 반환한다. 
# print(string1.index("no")) # find와 같이 없으면 -1을 반환한다. 인터프리터에 따라서는 런타임에러가 나온다
print(string1.rindex("Stay")) # string1의 뒤쪽부터 검색

출력 :
2
0
13
-1
13

string1 = "  Stay hungry  "

print(string1.strip()) # 좌우 공백 없애기
print(string1.rstrip()) # 우측 공백 없애기
print(string1.lstrip()) # 좌측 공백 없애기
print(string1.replace("hungry", "foolish")) # hungry를 foolish로 대체
print(string1.split()) # 공백을 기준으로 문자열 분리
print(string1.split("h")) # h를 기준으로 분리
print("and".join(['a', 'b'])) #  분리된 문자열을 and로 결합
print("".join(['a', 'b'])) #  분리된 문자열을 and로 결합

출력 :
Stay hungry
Stay hungry
Stay hungry
Stay foolish
['Stay', 'hungry']
[' Stay ', 'ungry ']
aandb
ab

unpacking

split() 함수를 이용해 나온 결과 값을 각각의 변수에 넣어주면, 각각의 변수에 결과 값이 매핑이된다.

element = "a,b,c,d"
ch1, ch2, ch3, ch4 = element.split(',')
print(ch1, ch2, ch3, ch4)

출력 :
a b c d


참고할만한 사이트

https://gist.github.com/shoark7/fb388e6494350442a2d649a154f69a3a

반응형