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 typelist type과 다르게 immutable하다는 것을 배운 적이 있다. 그 불변의 의미에 대해서 공부해보자.

#<in>
a = 'hello world'

str type 의 'hello world'를 'yello world'로 바꾸고 싶다. str typeimmutable하기 때문에 한 번 정하면 추가나 수정이 불가능하다.

 

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() 함수의 경우 해당되는 모든 문자치환하므로 주의가 필요하다.