21. Python에서 문자열을 능숙하게 사용합시다. – 선언, 연산

안녕하세요. 언휴예요.

프로그래밍에서 수와 문자열은 가장 기본적으로 사용하는 데이터 형식이죠. 이 중에 문자열은 대부분 언어에서 다양한 표현 방법과 연산 및 함수 등을 제공하고 있어요. 이러한 것들을 살펴보고 사용 능력을 키우면 프로그래밍에 도움을 줄 수 있어요.

이번 강의에서는 문자열을 표현하고 사용하기 위해 약속하거나 제공하고 있는 것들을 소개할 거예요.

문자열을 선언하는 방법을 앞에서 소개했었던 내용이예요. 문자열을 선언할 때 단일 콤마나 이중 콤마를 사용하여 선언할 수 있죠. 그리고 여러 라인으로 구성하는 인용문은 이중 콤마를 삼겹으로 감싸서 표현하는 것도 얘기했었어요.

#문자열 선언

str1 = '단일 콤마 사용' #단일 콤마
print(str1)

str2 = "이중 콤마 사용" #이중 콤마
print(str2)

str3 = """Rainbow
My heart leaps up when I behold
A rainbow in the sky
So was it when my life began
So is it now I am a man;
So be it when I shall grow old,
Or let me die!
The Child is father of the Man
And I could wish my days to be
Bound each to each by natural piety! """ #인용문
print(str3)
[그림 1] 문자열 선언
[그림 1] 문자열 선언

문자열을 선언할 때 구성 문자에 백슬러시가 오더라도 escape 문자로 처리하지 않고 그대로 사용하길 원하면 문자열 선언 앞에 r 혹은 R을 명시하세요. 그리고 Python에서 기본적인 문자열은 ASCII 코드 문자열인데 문자열 선언 앞에 u를 표시하면 유니 코드 문자열로 인식합니다. 아직까지는 문자열이 ASCII 코드인지 유니 코드인지 구분할 필요가 없었지만 파일 입출력 등의 작업을 할 때 필요할 수 있어요.

#Raw 문자열, 유니코드 문자열 선언

#일반 문자열
str1 = "c:\\temp\\hello.txt"
print(str1)

#Raw 문자열
str2 = r"c:\\temp\\hello.txt"
print(str2)

#유니코드 문자열
str3 = u"안녕하세요."
print(str3)
Raw 문자열, 유니코드 문자열
[그림 2] Raw 문자열, 유니코드 문자열

문자열을 효과적으로 사용하려면 피연산자를 문자열인 연산을 알아야겠죠. 먼저 문자열을 구성하는 원소에 접근할 때 인덱스[] 연산을 사용합니다. 그리고 멤버쉽 연산인 in과 not in을 사용할 수 있어요. 이 외에 두 개의 문자열을 합산하는 + 연산과 원본 문자열의 내용을 반복해서 구성하는 문자열을 합성하는 * 연산이 있어요.

#문자열 관련 연산

str1="abcde123456789"
str2="hello"
str3="yahoo"

#문자열을 구성하는 문자 확인하기
print("원본 문자열:",str1)
print("str1[2]:",str1[2])
print("str1[3:]:",str1[3:])
print("str1[3:5]:",str1[3:5])


#문자열 합성하기
print("str2:{0} str3:{1}".format(str2,str3))
print("str2+str3:",str2+str3)
print("str2[1:3]+str3:",str2[1:3]+str3)
print("str2*3:",str2*3)

#멤버쉽 연산하기
if('0' in str1):
    print("0문자는 str1에 있어요.")
else:
    print("0문자는 str1에 없어요.")
[그림 3] 문자열 관련 연산
[그림 3] 문자열 관련 연산

그리고 Python 언어에서는 String 형식에 다양한 멤버 메서드를 제공하고 있어요.  이 부분은 다음 강의에서 다루기로 할게요.