python/파이썬 기본
2. string type
Abokadoh
2023. 2. 11. 15:31
여러가지 자료형 중 string 표현 방식을 공부해보자.
1. ``` ```을 사용하여 string을 표현할 수 있다.
#<input>
a = '"Hello" World'
b = "Hello' World"
c = '''Hello World'''
print(a,b,c, sep = '\n')
#<output>
"Hello" World
Hello' World
Hello
World
- '',"" => 한 줄인 문자열을 표현할 때
- ''' ''' => 여러줄에 걸쳐 있는 문자열을 표현할 때
2. escape string (이스케이프 문자) 띄어쓰기, 탭
- 문자열 내의 일부 문자의 의미를 달리하여
특정한 효과
(띄어쓰기 or 탭) 를 주는 것 \n
: new line,\t
:tab 등…
#<in>
print('Hello World\n\n')
print('Ha\thahaha')
#<out>
Hello World
Ha hahaha
3. 문자열 slicing
- 인덱싱이 하나의 문자만을 추출한다면,
#<in>
a = 'striing'
a[0]
#<out>
's'
slicing은 부분 문자열을 추출한다고 볼 수 있다.
- slicing은
[시작 : 끝]
와 같이 명시하여[시작 :끝)
에 해당하는 부분 문자열을 추출한다. - 시작,끝 인덱스가 생략되어 있다면, 0부터 혹은 끝까지로 간주한다.
#<in>
a = 'Hello Wolrd'
print(a[0:11]) # 0~10까지의 문자열 추출
print(a[0:1]) # 0번째 문자열 추출
print(a[:5]) # 0~4까지의 문자열 추출
print(a[3:]) # 3~ 끝까지의 문자열 추출
#<out>
Hello Wolrd
H
Hello
lo Wolrd
4. string split 함수
문자열의 어떤 값을 지정하여 그것을 기준으로 나누어 리스트로 만들어주는 함수이다.
split
함수의 default값은' '
이다.
#<in>
a = 'hello world nice weather'
b = a.split() # default 값은 ' '이다.
#<out>
['hello', 'world', 'nice', 'weather'] # list화 된 문자열
5. 'string은 immutable(불변)'의 의미
string type
은 list type
과 다르게 immutable하다는 것을 배운 적이 있다. 그 불변의 의미에 대해서 공부해보자.
#<in>
a = 'hello world'
str type
의 'hello world'를 'yello world'로 바꾸고 싶다. str type
은 immutable
하기 때문에 한 번 정하면 추가나 수정이 불가능하다.
wtf~~이게 무슨 말이냐?
a = 'hello world'
a[0] ='y' # string은 불변(immutable)
#<out>
# TypeError: 'str' object does not support item assignment
list type
에선 list[index number]= 'value' 로 값을 변경하거나 추가할 수 있어지만 str type
은 해당 사항을 지원하지 않는다는 말이다.
그럼 str type
에 text를 추가, 변경하기 위해서는 ?
# 대안1
b = 'yello world' # 새롭게 변수로 정의
# 대안2
c = 'y' + a[1:] # slicing 사용
# 대안3
d = a.replace('h','y') #replace() 함수 사용
- 그냥 새로운 변수에 정의한다.
- 문자열을 slicing 해서 더하기
- replace함수 사용
replace() 함수의 경우 해당되는 모든 문자를 치환하므로 주의가 필요하다.