[패스트캠퍼스 환급챌린지]딥러닝/Chapter 3. 파이썬

[패스트캠퍼스]Chapter 3. 딥러닝을 위한 파이썬 03-05 문자열 자료형

포리셔 2023. 3. 27. 16:07

03-05 문자열 자료형

저번 포스트에서 수 자료형을 언급할 때 정말 간략하게 문자열 자료형이 언급되었는데, 이 문자형 자료형은 여러 프로그래밍 언어에서 널리 사용되고, 사용자 친화적인 프로그램을 만들 때 기본적인 조건입니다. 파이썬의 문자열은 작은따옴표 또는 큰따옴표를 사용합니다. 둘 중 아무거나 써도 상관 없지만, 작은따옴표로 시작했다면 반드시 작은따옴표로 마무리되어야 하며 큰따옴표의 경우도 마찬가지입니다.

a = "Hello"
b = 'Python'

print(a)
print(b)

파이썬 문자열의 특징 중 하나로 문자열끼리의 덧셈이 가능합니다. 문자열끼리 덧셈을 수행하면, 여러 문자열이 연결되어 하나로 통합된 문자열을 반환합니다. 다만, 실무에서 파이썬을 쓸 때는 그렇게까지 권장되는 방법은 아닙니다. 차라리 f-string을 쓰는 게 더 낫다고 합니다.

a = "Hello"
b = "Python"
print(a + ", " + b)

만약 문자열 안에 따옴표를 표시해야 할 경우에는 어떻게 해야 할까요? 여기에는 2가지 방법이 있습니다. 첫번째는 이스케이프 문자, 즉 역슬래시(\)를 이용해 따옴표를 출력하는 방법입니다. 아래와 같이 문자열 안에 큰따옴표를 표시해야 하므로 각각의 따옴표가 될 자리 앞에 역슬래시를 입력해 문자 취급해주는 겁니다.

print("\"평범\"의 연속은 \"비범\"이다.")

또다른 방법은, 작은따옴표와 큰따옴표를 동시에 사용하는 겁니다. 예를 들어, 출력하고자 하는 문자열을 큰따옴표로 감쌌다면, 그 문자열에 포함되어 출력되어야 할 따옴표는 작은따옴표로 입력합니다.

print("'평범'의 연속은 '비범'이다.")

 

이스케이프 문자

말 나온 김에 이스케이프 문자를 좀 더 알아보겠습니다. 이스케이프 문자를 이용하면 앞서 보았듯이 따옴표 등의 기호를 일반 문자 취급할 수 있습니다. 또한, 역슬래시 뒤에 특정 알파벳을 입력함으로써 문자열의 줄바꿈, 탭(tab) 문자 등의 입력 등이 가능합니다.

print("철수: \"반갑습니다.\"") # \": 큰따옴표
print("영희: \'어떻게 인사할까?\'") # \': 작은따옴표
print("Hello World!\nHello Python!") # \n: 줄바꿈
print("홍길동\t27세\tgildong@gmail.com\t프로그래머") # \t: 탭
print("백슬래시 출력: \\") # \\: 역슬래시 문자 입력

문자열 인덱싱

리스트 자료형에서와 마찬가지로, 문자열 인덱싱에서도 문자열에 포함된 특정한 하나의 문자를 얻을 수 있습니다. 문자열에서도 리스트와 마찬가지로 인덱스는 0부터 시작합니다.

a = "Hello"
print(a[0])
print(a[3])

문자열 슬라이싱

또한 문자열도 슬라이싱을 이용해 특정 부분만 추출하는 것이 가능합니다. 이렇게 추출된 문자열을 부분 문자열(substring)이라고 합니다.

a = "Hello World"

prefix = a[:4]
print(prefix)
suffix = a[2:]
print(suffix)

a = "Hello World"

print(a[7:10])

인덱싱과 슬라이싱 비교

문자열 인덱싱을 할 때는 범위를 벗어날 경우 TypeError를 출력합니다. 하지만 같은 방식을 슬라이싱을 사용해 적용할 경우 아무런 에러 없이 정상적으로 처리되는 것을 볼 수 있습니다.

a = "I love you"
print(a[2:50])

문자열의 특징: 불변 객체

파이썬에서 문자열은 특정 문자만 변경하는 것이 불가능합니다. 이를 불변 (immutable) 객체라고 하는데, 이 부분도 튜플 자료형에서 다시 알아보겠습니다. 아래와 같이 문자열의 값을 변경하려 한다면 TypeError가 출력되면서 프로그램이 정지됩니다.

a = "Hello World"
a[3] = 'b'

 

 

http://bit.ly/3Y34pE0

 

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr

* 본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.