백엔드/Python

[Python] 파이썬 3강 - 파이선 프로그래밍의 기초 , 자료형 - 문자열 자료형 - 1.문자열 연산하기

Koras02 2023. 1. 16. 13:50

이번 시간에는 파이썬의 기초 문자열 자료형에 

대해 알아보도록 하겠습니다.

 

문자열이란?

문자열(String)이란 뜻 그대로 문자, 단어 등으로

구성된 문자들의 집합을 의미합니다.

 

예를 들어 다음과 같은 것들이 바로

문자열입니다.

"Life is too short, but we need Python"
"a"
"123"

위 문자열을 보면 모두 큰따옴표(" ")로 둘려싸여

있습니다. "123은 숫자인데 왜 문자열일까"라는

 

의문이 들수 있는데 따움표로 둘러싸이면

모두 문자열로 보면 됩니다.

 

문자열을 만들고 사용하는 방법

위 예제에서는 문자열을 만들때 큰 따옴표(" ")만

사용했지만 이 외에도 문자열을 만드는 방법은 

3가지가 더 존재합니다. 

 

파이썬에서 문자열을 만드는 방법으로는

총 4가지가 있습니다.

1.큰 따옴표( " )로 양쪽 둘러싸기

"Hello World"

2.작은따옴표( ' )로 양쪽 둘러싸기

'Python is funny && strong'

3.큰따옴표 3개를 연속( """ ) 으로 써서 양쪽 둘러싸기

"""life is too short, You need Python"""

4.작은 따옴표 3개를 연속( ''' ) 으로 둘러싸기

'''Life is too short, We need python'''

단순함이 자랑인 파이썬에서는 

문자열을 만드는 방법을 왜 4가지나 

가지게 되었을 까요?

 

문자열 안에 작은 따옴표나 큰 따옴표를 포함시키고 싶을 때

 

문자열을 만들어 주는 주인공은 작은 따옴표(')와

큰 따옴표('')입니다. 그런데 문자열 안에도

 

작은 따옴표와 큰 따옴표가 들어 있어야할 

경우가 있습니다. 이때는 좀 더 특별한

기술이 필요한데, 예제를 하나 들어봅시다.

 

1. 문자열에 작은따옴표 ( ' ) 포함시키기

Python's favorite food is perl

위 문자열을 food 변수에 저장하고 싶다면

문자열 중 Python's에 작은따옴표( ' )가 포함됩니다.

 

이럴 떄 다음과 같이 문자열을 큰따옴표(")로

둘러싸야 합니다. 큰 따옴표 안에 들어 있는 

 

작은 따옴표는 문자열을 나타내기 위한 

기호로 인식되지 않습니다. 

>>> food = "Python's favorite food is perl

프롬포트창에서 food를 입력해 결과를

확인해 봅니다.

 

변수에 저장된 문자열이 그대로 

출력되는 것을 볼 수 있습니다.

>>> food 
"Python's favorite food is perl"

시험 삼아서 다음과 같이 큰따옴표(")가

아닌 작은 따옴표(')로 문자열을 둘러싼 후 

다시 실행해 봅니다.

 

'Python'이라는 문자열로 인식되

구문 오류(SyntaxError)가 발생합니다.

>>> food = 'Python's favorite food is perl' 
 File "<input>", line 1
    food = 'Python's favorite food is perl'
                                          ^
SyntaxError: unterminated string literal (detected at line 1)

2.문자열에 큰따옴표 (") 포함하기

"Python is very easy. " he says.

위와 같이 큰따옴표(")가 포함된 문자열이라면

어떻게 해야 큰따옴표가 제대로 표현될까요?

 

다음과 같이 문자열을 작은따옴표(')로

둘러싸면 됩니다.

say = '"Python is very easy." he says.'

위와 같이 이렇게 작은따옴표(')안에 사용된

큰따옴표(")는 문자열을 만드는 기호로 

인식되지는 않습니다.

 

3. 백슬래시( \ )를 사용해 작은 따옴표( ' )와 큰따옴표( "" )를 문자열에 포함시키기

>>> food = "Python\ 's favorite food is perl"
>>> say = "\"Python is very easy.\" he says."
food = 'Python\'s favorite food is perl'
food
"Python's favorite food is perl"
say = "\"Python is very easy.\" he says."
say
'"Python is very easy." he says.'

작은 따옴표( ' )나 큰따옴표( "" )를 문자열에 

포함시키는 또 다른 방법은 

 

백슬래시( \ )를 사용하는 것입니다.

즉 백슬래시( \ )를 작은 따옴표( ' )나 

 

큰 따옴표( " )앞에 삽입하면 백슬래시( \ ) 뒤의

작은따옴표( ' )나 큰 따옴표( " )는 문자열을

 

둘러싸는 기호의 의미가 아닌 

문자 ( ' ), ( " ) 그 자체를 뜻하게 됩니다.

 

어떤 방법을 사용해서 문자열 안에 작은따옴표와

큰 따옴표를 포함시킬지는 각자 개인의 선택입니다.

 

대화형 인터프리터를 실행한 후 위 예문을 

꼭 작성해봅시다.

 

여려 줄인 문자열을 변수에 대입하고 싶을 때

 

문자열이 항상 한 줄 짜리만 있는 것이 아닙니다.

다음과 같이 여러 줄의 문자열을 

 

변수에 대입하려면 어떻게 

처리해야 할까요?

Life is too short
You nedd Python

1.줄을 바꾸기 위한 이스케이프 코드 \n 삽입

>>> multiline = "Life is too short\nWed need python"
>>> multiline
'Life is too short\nWed need python'

위 예제처럼 줄바꿈 문자 \n을 삽입하는 방법이 

있지만 읽기에는 불편하고 줄이 길어지는 

단점이 있습니다.

 

2. 연속된 작은 따옴표 3개( ' ' ' ) 또는 큰 따옴표 3개( " " " ) 사용하기

 

위 1번의 단점을 극복하기 위해 파이썬에서는 다음과

같이 작은따옴표 3개(''') 또는 큰따옴표 3개(""")를 사용합니다.

multiline='''
... Life is too short
... You need Python
'''

작은따옴표 3개를 사용한 경우

multiline="""
... Life is too short 
... You need Python
"""

큰따옴표 3개를 사용한 경우

 

print(multiline)를 입력해 어떻게 출력되는지 

확인해봅니다.

>>> print(multiline)
 Life is too short 
 You need Python

두 경우 모두 결과는 동일합니다.

위 예제에서도 확인할 수 있듯 문자열이 

 

여러 줄일 경우 escape-code(이스케이프 코드)

사용하는 것보다 따옴표를 연속으로 

사용하는 것이 훨씬 깔끔합니다.

 

이스케이프 코드란?

 

문자열 예제에서는 여러 줄의 문장을 처리할 때

백슬래시 문자와 소문자 n을 조합한 

 

\n 이스케이프 코드를 사용했습니다. 

이스케이프코드란 프로그래밍을 할 때

사용할 수 있도록 미리 정의해 둔 

 

"문자 조합"입니다. 주로 출력물을 보기 좋게

정렬하는 용도로 사용합니다. 

 

몇 가지 이스케이프 코드를 정리하면

다음과 같습니다.


문자열 연산하기

파이썬에서 문자열을 더하거나 곱할 수 있습니다.

다른 언어에서는 쉽게 찾아볼 수 없는 기능으로 

 

우리 생각을 그대로 반영해 주는 파이썬만의 

장점이라고 할 수 있습니다.

 

문자열을 더하거나 곱하는 방법을 

알아봅시다.

 

문자열 더해서 연결하기(Concatenation)

>>> head = "Python"
>>> heyon = "is fun"
>>> head + heyon

위 소스 코드에서 세번째 줄을 봅시다.

복잡하게 생각하지 않고 눈에 보이는 대로 

 

생각해 보면 "Python"이라는 head 변수와

"is fun!"이라는 heyon 변수와 더한 것입니다. 

 

결과는 "Python is fun!"이라고 출력됩니다.

즉 head와 heyon 변수가 +에 의해 합쳐진 것 입니다.

 

문자열 곱하기

a = "python"
a * 2
'pythonpython'

위 코드에서 *의 의미는 우리가 일반적으로 

사용하는 숫자를 곱하는 의미와는 전혀 다릅니다.

 

위 소스 코드에 a * 2 문장은 a를 2번 반복하라는 

뜻으로 즉 *는 문자열의 반복을 의미로 사용되었습니다.

 

굳이 코드의 의미를 설명할 필요가 없을 

정도로 직관적입니다.

 

문자열 곱하기 응용

 

문자열 곱하기를 좀 더 응용해 봅시다. 

# 문자열 곱하기 응용 = multistring.py

print("=" * 50)
print("My Program")
print("=" * 50)

입력한 소스를 디렉토리 파일에 위 파일명으로 

저장후 프로그램을 cmd로 실행해 봅시다.

C:\Users\****\PycharmProjects\pythonTutorial\02-자료형>python 02-1.multiString.py
==================================================
My Program
==================================================

이런 식의 표현은 앞으로 자주 사용하게 될 것 입니다.

프로그램을 만들어서 실행할 때 출력되는 화면 

 

제일 위쪽 프로그램 제목을 이와 같이

표시하면 보기 좋을 것 입니다.

 

문자열 길이 구하기

 

문자열의 길이는 다음과 같이 len 함수를 사용하면

구할 수 있습니다. len 함수는 print 함수처럼 

 

파이썬의 기본 내장된 함수로 별다른 

설치 없이 사용할 수 있습니다.

>>> a = "Life is too short"
>>> len(a)
17

참고 자료 

 

02-2 문자열 자료형

`[추천 동영상 강의]` : [https://www.youtube.com/watch?v=STGCSIt3nsE](https://www.youtube.com/watch?v=STGCS…

wikidocs.net

 

 

GitHub - Koras02/welcomto-py

Contribute to Koras02/welcomto-py development by creating an account on GitHub.

github.com