파이썬 문자열 이해하기 - Part 1: 기본
문자열의 기본
문자열은 텍스트 데이터를 나타내는 파이썬의 데이터 타입입니다. 예를 들어, 단어, 문장 또는 전체 문단 등이 문자열에 해당합니다. 파이썬에서 문자열을 만들려면 텍스트를 따옴표로 감싸면 됩니다.
simple_string = "안녕하세요, 파이썬!"
print(simple_string)
문자열의 불변성(Immutability)
파이썬에서 문자열은 불변합니다. 즉, 한 번 만들어진 문자열을 변경할 수 없습니다.
s = "Python"
# s[0] = "J" # 오류를 발생
s = "J" + s[1:] # 문자열을 변경
print(s) # 출력: Jython
문자열 포매팅
문자열 포매팅은 문자열 내에 변수나 값을 삽입하는 방법입니다.
1. f-string
Python 3.6 이상에서 사용할 수 있으며, 문자열 안에 변수와 표현식을 직접 삽입할 수 있습니다. 아래와 같이 문자열 내에서 따옴표 왼쪽 밖에 f
를 붙여서 f""
이런식으로 표현하며, 변수는 문자열 내에서 중괄호로 감싼 후 변수의 이름이나 식을 적으면 됩니다.
name = "Alice"
age = 24
print(f"My name is {name} and I am {age} years old.")
2. str.format()
메소드
중괄호를 사용해 변수를 삽입할 수 있습니다.
print("My name is {} and I am {} years old.".format(name, age))
인덱스의 기본
파이썬의 인덱스는 0부터 시작합니다. 첫 번째 문자의 인덱스는 0이고, 두 번째 문자는 1, 그리고 이런 식으로 계속됩니다. 문자열 인덱싱은 파이썬에서 문자열 내 특정 문자에 접근하는 방법입니다. 인덱싱은 문자열의 각 문자에 할당된 고유의 번호(인덱스)를 사용하여 이루어집니다.
word = "Python"
print(word[0]) # 'P', 첫 번째 문자
print(word[1]) # 'y', 두 번째 문자
음수 인덱싱
파이썬에서는 음수 인덱스도 사용할 수 있습니다. 음수 인덱스는 문자열의 끝에서부터 시작합니다. 예를 들어, -1은 마지막 문자를, -2는 끝에서 두 번째 문자를 나타냅니다.
print(word[-1]) # 'n', 마지막 문자
print(word[-2]) # 'o', 끝에서 두 번째 문자
인덱스 오류
존재하지 않는 인덱스에 접근하려고 하면 IndexError
가 발생합니다. 예를 들어, 문자열의 길이를 넘어서는 인덱스에 접근하려고 할 때 이 오류가 발생합니다.
print(word[6]) # IndexError 발생, 'word'의 길이는 6이지만 인덱스는 0부터 시작하므로 5가 최대
인덱스를 사용한 문자열 조작
인덱스를 사용하면 문자열의 특정 부분을 추출하거나 조작할 수 있습니다. 이는 문자열의 불변성을 우회하여 새로운 문자열을 생성하는 데 사용됩니다.
# 문자열의 일부를 추출
substring = word[1:4] # 'yth'
print(substring)
# 문자열의 일부를 변경 (불변성 때문에 새로운 문자열 생성)
new_word = word[0] + 'i' + word[2:]
print(new_word) # 'Pithon'
인덱스와 문자열 슬라이싱
인덱스를 활용한 문자열 슬라이싱은 문자열의 부분집합을 추출하는 데 사용됩니다. [시작 인덱스:끝 인덱스]
형식을 사용하며, 시작 인덱스
는 포함되고 끝 인덱스
는 포함되지 않습니다.
print(word[2:5]) # 'tho', 인덱스 2에서 4까지의 문자
인덱스 생략
시작 인덱스나 끝 인덱스를 생략할 수 있습니다. 시작 인덱스를 생략하면 문자열의 처음부터, 끝 인덱스를 생략하면 문자열의 끝까지를 의미합니다.
print(word[:2]) # 'Py', 처음부터 인덱스 1까지
print(word[4:]) # 'on', 인덱스 4부터 끝까지
문자열 슬라이싱의 확장 - [::-1]
사용하기
문자열 슬라이싱에서 [::-1]
은 문자열을 역순으로 만드는 데 사용됩니다. 이 표현은 [시작 인덱스:끝 인덱스:단계(step)]
형태의 슬라이싱을 활용한 것입니다. 여기서 단계
는 문자를 건너뛰는 간격을 지정하며, -1
은 뒤에서부터 한 글자씩 거꾸로 나아가라는 의미입니다.
예시 - 문자열 역순 만들기
word = "Python"
reversed_word = word[::-1]
print(reversed_word) # 'nohtyP'
이 방식은 문자열을 거꾸로 뒤집을 때 매우 유용합니다.
단계값 활용하기
단계값(step)은 얼마나 많은 문자를 건너뛸지를 지정합니다. 예를 들어, [::2]
는 한 글자씩 건너뛰어 문자를 추출하는 것을 의미합니다.
every_other = word[::2] # 'Pto'
print(every_other)
단계값이 음수일 경우 문자열을 역순으로 처리합니다. -2
는 뒤에서부터 두 글자씩 건너뛰는 것을 의미합니다.
reverse_every_other = word[::-2] # 'nhy'
print(reverse_every_other)