본문 바로가기

Language/Python

[Python] 문자열 연산

이번에는 문자열 연산에 대해 알아볼까요?

 

문자열 더하기

 

문자열을 뒤에 연결(Concatenation)해주는 역할을 해요.

 

name = "홍길동"
age = "20세"
message = name + age
print(message)
>>> 홍길동20세

# 참고로 print에서 다음과 같이 큰따옴표와 띄어쓰기(공백)를 이용하여 작성하면
# 첫 번째 결과와 동일하게 출력되는 것을 알 수 있어요.
print("홍길동" "20세")
>>> 홍길동20세

# 추가적으로 print함수에서 콤마(,)를 사용하면 
# 문자열을 띄어쓰기(공백)로 구분하여 출력할 수 있어요
print(name, age)
>>> 홍길동 20세

 

문자열 곱하기

 

문자열을 n번 반복하여 연결해주는 역할을 해요.

 

# 이름을 2번 반복하기
name = '홍길동'
message = name * 2;
print(message)
>>> 홍길동홍길동

 

문자열 길이

 

len() 함수를 이용하여 입력한 문자열의 길이를 확인할 수 있어요.

띄어쓰기(공백)도 길이를 계산하는데 포함되요.

 

message = 'I am student.'
print(len(message))
>>> 13

# I   a m   s t u d e  n  t  .
# 1 2 3 4 5 6 7 8 9 10 11 12 13

 

문자열 인덱싱

 

이번에는 특전 위치에 있는 문자를 가져와 볼게요.

[n]을 이용하여 문자열의 n번째 문자를 확인할 수 있습니다.

 

여기서 n인덱스라고 하는데 인덱스 번호는 0번부터 시작해요.

꼭 알아두세요.

 

인덱스 번호를 [-1]이라고 작성하면 가장 마지막 문자를 찾아줘요.

당연히 [-2]라고 하면 맨 뒤에서 2번째 문자를 찾아주겠죠?

 

message = 'I am student.'
print(message[0])
print(message[3])
print(message[-1])
print(message[len(message)-1])
print(message[-2])
>>> I
>>> m
>>> .
>>> .
>>> t

 

문자열 자르기(슬라이싱)

 

특정 인덱스 범위에 있는 문자열을 찾을 수는 없을까요?

가능합니다!

 

파이썬에서도 문자열을 자르는 방법을 지원하는데요.

어떻게 사용하는지 알아볼까요?

 

message = 'I am student.'
print(message[0:4])        # 문자열을 인덱스 0번부터 4번 전까지 자르기
print(message[5:])         # 문자열을 인덱스 5번부터 끝까지 자르기
print(message[:6])         # 문자열을 인덱스 6번 전까지 자르기
print(message[3:-1])       # 문자열을 인덱스 3번부터 맨 마지막 문자 전까지 자르기
>>> I am
>>> student.
>>> I an s
>>> m student

# 쉽죠? 인덱스 번호만 알면 문자열을 잘라서 사용할 수 있어요.

 

문자열 나누기

 

그럼 띄어쓰기(공백)이나 특정 문자를 기준으로 나눌 수는 없을까요?

 

이러한 기능을 제공하기 위해 파이썬은 split()이라는 함수를 지원해요.

아래 코드를 통해 split 함수를 어떻게 사용하는지 알아볼게요.

 

message = 'I am student.'
print(message.split())
print(message.split(" "))
print(message.split(sep=" ", maxsplit=1))
print(message.split(" ", maxsplit=1))
>>> ['I am student.']
>>> ['I', 'am', 'student.']
>>> ['I', 'am student.']
>>> ['I', 'am student.']