10.1 문자열의 각 문자 순회하기
Python에서는 문자열을 종종 문자들의 배열/리스트로 간주해서, 다른 프로그래밍 언어에서 배열을 다루는 것과 비슷하게 조작하기 편리해요.
문자열이 문자의 모음이라면, 당연히 문자를 하나씩 순회할 수 있겠죠.
문자열의 각 문자 순회하기
문자열의 각 문자를 순회하기 위해 간단한 for 루프를 사용할 수 있어요. 이렇게 하면 각 문자에 대해 개별적으로 작업을 수행할 수 있어요:
|
|
중요! Python에서는 독립된 문자에 대한 char 타입이 없어요. 하나의 문자도 여전히 문자열로 간주돼요.
10.2 문자열의 길이 구하기
문자열로 할 수 있는 다른 일은 뭐가 있을까요? 당연히 문자열의 길이를 구해서 몇 개의 문자가 있는지 알아보는 것이겠죠. 이를 위해 Python에는 특별한 내장 함수 len()이 있어요. 이 함수는 문자열의 문자 수를 반환해요:
text = "Hello, world!"
length = len(text)
print(length) # 출력될 값: 13
10.3 특정 문자 얻기
또한, 문자열에서 특정 문자도 그 번호(인덱스)를 통해 얻을 수 있어요.
중요! Python에서 리스트와 배열의 인덱스는 0부터 시작해요. 문자열에 10개의 문자가 있다면, 그 인덱스는 0, 1, 2,..., 9가 될 거에요.
인덱스를 통해 문자를 얻는 일반적인 방법은 다음과 같아요:
string[index]
모든 문자열의 문자를 화면에 출력해보죠, 하지만 그 인덱스를 통해 접근해볼게요:
|
|
10.4 서브스트링 포함 여부
하나의 문자열 안에 다른 문자열이 포함되어 있는지 확인하는 것은, Python으로 프로그래밍 할 때 자주 부딪히는 기본적인 과제 중 하나에요. 이 기능은 텍스트 데이터 처리, 사용자 입력 검증, 문자열에서 데이터를 찾는 등의 많은 응용 프로그램에서 널리 사용돼요.
이 작업을 위해 Python에는 독특한 몇 가지 방법이 있는데, 이는 Python 고유의 방법과 다른 프로그래밍 언어에서도 흔히 사용되는 방법이 있어요:
연산자 in:
이것은 문자열에 서브스트링이 있는지 확인하는 가장 간단하고 자주 사용되는 방법이에요. 서브스트링이 문자열에 있으면 True를 반환하고, 그렇지 않으면 False를 반환해요.
text = "Hello, world!"
print("world" in text) # 출력될 값: True
메소드 find():
메소드 find()는 문자열 내에서 서브스트링의 첫 번째 위치의 인덱스를 반환해요. 만약 서브스트링이 없다면, -1을 반환해요. 이렇게 하면 서브스트링의 존재 여부만이 아니라 위치도 알 수 있어요.
text = "Hello, world!"
position = text.find("world")
print(position) # 출력될 값: 7
메소드 index():
find()와 비슷하지만, 서브스트링이 없을 때 -1을 반환하는 대신 index() 메소드는 ValueError 예외를 발생시켜요. 서브스트링의 부재가 예상 밖의 경우에 오류로 처리되고자 할 때 유용해요.
text = "Hello, world!"
try:
position = text.index("world")
print(position) # 출력될 값: 7
except ValueError:
print("Substring not found.")
메소드 count():
메소드 count()는 문자열 내에서 서브스트링이 몇 번 나타나는지를 세요. 이는 존재 여부뿐만 아니라 나타나는 횟수도 알아야 할 때 유용해요.
text = "Hello, world!"
cnt = text.count("l")
print(cnt) # 출력될 값: 3
GO TO FULL VERSION