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!