안녕하세요, codingbird입니다!
지난 시간에는 파이썬에서 사용하는 여러 연산자들에 배웠습니다!!
이번 시간에는 문자열을 좀 더 제대로 활용하는 시간을 가져보도록 하겠습니다.
저번에 '변수와 자료형' 부분에서 문자열이라는 자료형을 봤었죠?
문자열(String)이란, 우리가 일반적으로 생각하는 문자들을 말합니다.
조금 더 전문적으로 표현하자면, 순서가 있는 문자들의 집합입니다!
일반적으로 큰따옴표(")나 작은따옴표(')으로 감싸져있는 문자들이 바로 문자열입니다.
1. 오류 피하기
만약, 어떤 문자열을 "[문자열]"처럼 감싸서 표현했는데, 문자열 자체에 큰따옴표(")가 하나 들어있으면 어떻게 될까요?
컴퓨터는 어디서부터 어디까지가 문자열인지 헷갈리게 될 것 입니다.
그럴 때는 큰따옴표(") 대신에 작은따옴표(')로 감싸서, '[문자열]'으로 표현하면 되겠죠?
ex) "I am "코딩버드"." (X) -> 'I am "코딩버드".' (O)
반대의 상황, 즉 문자열 안에 작은따옴표(')가 하나 들어있으면 반대로 큰따옴표(")로 감싸면 되겠죠?
ex) 'I'm codingbird.' (X) -> "I'm codingbird." (O)
헷갈린다면 백슬래시(\)를 쓰는 방법이 있습니다.
작은따옴표(')나 큰따옴표(") 앞에 백슬래시(\)가 오면, 그 작은따옴표(')나 큰따옴표(")는 문자 그 자체로 인식됩니다!
문자열을 감싸는 용도로 인식하지 않습니다.
따라서 위 두 가지 방법이 헷갈리신다면, 이 방법을 사용하셔도 좋을 것 같습니다.
아래 코드를 봅시다.
print('I am "코딩버드".') # 문자열에 큰따옴표(")를 넣을 때는 작은따옴표(')로 감싸기
print("I'm codingbird.") # 문자열에 작은따옴표(')를 넣을 때는 큰따옴표(")로 감싸기
print("I am \"코딩버드\".") # 큰따옴표(") 앞에 백슬래시(\)를 쓰면 문자 자체로 인식됩니다.
print('I\'m codingbird.') # 작은따옴표(') 앞에 백슬래시(\)를 쓰면 문자 자체로 인식됩니다.
참고로, 백슬래시(\)는 위와 같은 특수한 용도로 사용되기 때문에,
백슬래시(\)를 표현하기 위해서는 아래 예시와 같이 백슬래시를 2번 사용해야 합니다.
ex) \\
이렇게 하면 문자 그 자체인 백슬래시(\) 하나로 간주됩니다.
백슬래시(\)를 활용한 '이스케이프 코드'가 여러 개 있는데, 아래에서 바로 배워보겠습니다!
2. 이스케이프 코드
이스케이프 코드란, 특정한 역할을 하도록 프로그래밍에서 미리 정의해둔 문자 조합입니다.
일반적으로, 문자열에 활용됩니다.
대표적인 이스케이프 코드를 알아봅시다.
코드 | 의미 |
\' | 문자로서의 작은따옴표(') |
\" | 문자로서의 큰따옴표(") |
\\ | 문자로서의 백슬래시(\) |
\n | 줄바꿈 |
\t | 탭 간격 |
아래 코드를 통해 직접 확인해봅시다!
# 큰따옴표(") 출력하기 - \"
print("\"")
# 작은따옴표(') 출력하기 - \'
print('\'')
# 백슬래시(\) 출력하기 - \\
print("\\")
# 줄바꿈
print("I am codingbird.\nWho are you?")
# 탭 간격
print("I am codingbird.\tWho are you?")
앞으로는 문자열을 좀 더 다양하게 표현할 수 있겠죠?
3. 문자열 연산
지난 시간에 연산자에 대해서 배웠죠?
연산자 중에 산술 연산자를 통해 숫자 자료형들을 더하거나 곱하거나 할 수 있었죠?
그런데 문자열도 더하거나 곱할 수 있습니다!!!
더하거나 곱하는 것은 숫자에만 할 수 있는 거 아닌가 싶죠?
아래 코드를 보시면, 어떤 식으로 더하거나 곱하는지 알 수 있습니다.
# 문자열 더하기
s1 = "I am "
s2 = "codingbird."
s3 = s1 + s2 # 문자열 s1과 s2의 값을 붙인 문자열을 s3에 저장
print(s3) # "I am codingbird."가 출력됨
# 문자열 곱하기
s4 = "codingbird"
s5 = s4 * 5 # 문자열 s4의 값이 5개가 붙여진 문자열을 s5에 저장
print(s5) # "codingbirdcodingbirdcodingbirdcodingbirdcodingbird"가 출력됨
이렇게 더하면 두 문자열을 연결할 수 있고, 곱하면 반복되는 문자들을 쉽게 나타낼 수 있습니다!
4. 문자열 길이 (len 함수)
len은 파이썬에 기본적으로 있는 내장 함수입니다!
len 함수 안에 어떤 문자열을 넣으면, 그 문자열의 총 글자 수(길이)가 나옵니다.(공백 포함)
어떤 글의 글자 수가 궁금하다고요?
그러면 이제는 len 함수에 넣어보세요!
# 문자열 s의 값의 총 글자 수(길이)가 출력됨
s = "I am codingbird. Let's start Python!"
print(len(s))
5. 문자열 인덱싱
인덱싱... 새로운 개념이 나왔네요!
인덱싱(Indexing)이란, 인덱스를 통하여 특정 데이터에 접근하는 것을 말합니다.
인덱스(Index)는, 데이터의 위치를 나타내는 숫자 또는 데이터를 효율적으로 찾아내기 위한 자료 구조를 말합니다.
특히 인덱스에는, 범위나 상황에 따라 다양한 의미가 있습니다.
여기서는 데이터의 위치를 나타내는 숫자로 생각하면 되겠습니다.
즉, 인덱스라는 주소를 통해 어떤 데이터를 찾는 과정이 인덱싱이다 라고 생각하면 되겠습니다!
예를 들어 "I love you"라는 문자열이 있다고 해보겠습니다.
중요한 점은, 인덱스는 0부터 시작한다는 것입니다.
첫 번째 문자는 "I"이죠?
그러면 인덱스 0의 문자는 첫 번째 문자인 "I"가 되는 것입니다.
네 번째 문자인 "o"는 인덱스 3의 데이터가 되고요.
참고로 두 번째 문자, 즉 인덱스 1은 공백입니다.
아래 코드를 통해 확실하게 이해해봅시다.
s = "I love you"
print(s[0]) # 인덱스 0, 즉 1번째 문자인 "I"가 출력됨
print(s[1]) # 인덱스 1, 즉 2번째 문자인 공백(" ")이 출력됨
print(s[3]) # 인덱스 3, 즉 4번째 문자인 "o"가 출력됨
end = len(s) # 문자열 s의 길이를 end에 저장
print(s[end-1]) # 마지막 인덱스, 즉 마지막 문자인 "u"가 출력됨
6. 문자열 슬라이싱
슬라이싱(Slicing)이란, 말그대로 잘라내는 것을 말합니다.
정확히 말하면, 문자열에서 특정 부분을 잘라내는 것을 말하죠.
무언가를 잘라내려면, 어디서부터 어디까지 자를지를 알아야겠죠?
이때 인덱스를 통해 잘라낼 범위를 지정하게 됩니다.
슬라이싱에는 시작 인덱스와 끝 인덱스를 지정해줘야 합니다.
그러면 시작 인덱스부터 끝 인덱스 직전까지의 데이터를 잘라냅니다.
*끝 인덱스까지가 아니라, 끝 인덱스 직전까지입니다!!!*
만약 시작 인덱스를 지정하지 않으면, 시작 인덱스는 0이 됩니다.
만약 끝 인덱스를 지정하지 않으면, 끝 인덱스는 (마지막 인덱스 + 1), 즉 문자열의 길이입니다.
마지막 인덱스보다 1만큼 커야, 마지막 인덱스의 데이터까지 포함되니까요!
( 시작 인덱스 ~ 끝 인덱스 - 1 )
만약 시작 인덱스와 끝 인덱스를 모두 지정하지 않으면, 처음부터 끝까지의 모든 데이터를 말하는 것이겠죠?
아래 예시 코드를 봅시다.
s = "I love you"
print(s[2:6]) # 인덱스 2에서부터 5까지의 문자열인 "love"를 출력
print(s[7:10]) # 인덱스 7에서부터 9까지의 문자열인 "you"를 출력
print(s[:6]) # 시작 인덱스인 인덱스 0부터 5까지의 문자열인 "I love"를 출력
print(s[2:]) # 인덱스 2부터 끝 인덱스인 인덱스 9까지의 문자열인 "love you"를 출력
print(s[:]) # 처음 인덱스부터 끝 인덱스까지, 즉 모든 문자열을 출력
인덱싱과 비슷한 코드이지만, 지정할 수 있는 인덱스가 2개이고, 시작 인덱스와 끝 인덱스는 콜론(:)으로 구분됩니다.
이를 통해 문자열에서 특정 범위의 데이터를 선택할 수 있습니다.
이렇게 문자열을 잘 활용하는 다양한 방법을 알아보았습니다.
문자열은 파이썬의 기본적인 자료형 중 하나이므로, 문자열을 잘 다루는 것은 매우 중요합니다.
내용도 많고 조금 어려울 수 있지만, 열심히 복습하시기 바랍니다!
아직 문자열에 대한 몇 가지 내용이 더 있습니다.
다음 시간에 추가로 더 알아보도록 합시다.
오늘도 수고하셨습니다~
'Python' 카테고리의 다른 글
[Python][기초] 리스트(List) (0) | 2025.04.09 |
---|---|
[Python][기초] 문자열 포맷팅 (문자열 포맷 코드 활용) (0) | 2025.04.02 |
[Python][기초] 파이썬 - 연산자 (0) | 2025.03.28 |
[Python][기초] 파이썬 - 변수와 자료형 (1) | 2025.03.26 |
[Python][기초] 파이썬 - 입출력 (1) | 2025.03.25 |