7.3 문자열을 연결하고 반복하기

이번에는 문자열을 연결하는 방법과 반복하는 방법을 알아보겠습니다. 문자열에 +를 사용하면 문자열이 연결되고, *를 사용하면 문자열이 반복됩니다.

  • 문자열1 + 문자열2
  • 문자열 * 정수

먼저 문자열 연결입니다.

>>> hello = 'Hello, '
>>> world = 'world!
>>> hello + world
'Hello, world!'

문자열 'Hello,'가 들어있는 변수 hello'world!'가 들어있는 변수 world를 더해서 'Hello, world!'가 나왔죠? 이렇게 +로 문자열을 더하면 문자열이 연결됩니다. 파이썬에서 문자열 연결은 여러 가지 결과를 묶어서 한 번에 출력할 때 자주 사용합니다.

이번에는 문자열 반복입니다.

>>> hello * 3
'Hello, Hello, Hello, '

hello * 3 같이 문자열 'Hello,' 들어있는 변수를 3번 곱하면 'Hello, Hello, Hello,' 나옵니다. 이렇게 *는 문자열을 특정 횟수만큼 반복합니다(0 또는 음수를 곱하면 빈 문자열이 나오며 실수는 곱할 수 없습니다).

변수 없이 문자열만 더하거나 곱해도 결과는 같습니다.

>>> 'Hello, ' + 'world!'
'Hello, world!'
>>> 'Hello, ' * 3
'Hello, Hello, Hello, '

그럼 문자열에 숫자를 더할 수는 없을까요?

>>> 'Hello, ' + 10
Traceback (most recent call last):
  File "<pyshell#3>", line 1, in <module>
    'Hello, ' + 10
TypeError: Can't convert 'int' object to str implicitly

문자열에 정수를 더하려고 하면 에러가 발생합니다. 이때는 str을 사용하여 숫자(정수, 실수)를 문자열로 변환하면 됩니다(파이썬 프롬프트에서 #로 시작하는 주석은 입력하지 않아도 됩니다).

  • 문자열 + str(정수)
  • 문자열 + str(실수)
>>> 'Hello, ' + str(10)      # str을 사용하여 정수를 문자열로 변환
'Hello, 10'
>>> 'Hello, ' + str(1.5)     # str을 사용하여 실수를 문자열로 변환
'Hello, 1.5'

'Hello, ' + str(10)과 같이 str을 사용하여 10을 문자열로 변환한 뒤 'Hello, '와 연결했습니다. 즉, 문자열에 +를 사용할 때는 어떤 형태의 값이든 str을 사용해서 문자열로 맞춰주면 됩니다. 특히 이 방식은 파이썬에서 자주 사용하는 방식입니다. 문자열과 숫자를 간단하게 조합할 수 있어서 숫자의 계산 결과와 설명을 함께 출력할 때 편리합니다.

지금까지 문자열에 대해 알아보았습니다. 문자열에서 ' '(작은 따옴표)와 " "(큰 따옴표)는 문자열에 포함되지 않으므로 길이를 구할 때는 따옴표를 제외한다는 점 꼭 기억해 두세요.

참고 | 파이썬 셸과 스크립트 파일의 결과가 다른데요?

파이썬 셸의 >>>에서 문자열을 그대로 출력하면 작은 따옴표도 함께 출력됩니다(변수에 넣은 뒤 변수로 출력해도 마찬가지).

>>> 'Hello, world!'
'Hello, world!'

파이썬 셸에서는 문자열이나 변수를 그대로 입력하면 출력 결과가 문자열이라는 것을 정확하게 표현하기 위해 작은 따옴표로 묶인 문자열이 출력됩니다.

스크립트 파일에서는 문자열이나 변수를 그대로 출력할 수 없으므로 print를 사용합니다.

hello.py

print('Hello, world!')

실행 결과

Hello, world!

print로 문자열을 출력해보면 작은 따옴표 없이 문자열만 출력됩니다. 스크립트 파일뿐만 아니라 파이썬 셸에서도 print를 사용하면 작은 따옴표 없이 출력됩니다.

>>> print('Hello, world!')
Hello, world!