어제는 파이썬의 숫자열에 대해서 알아보았으니 오늘은 파이썬의 문자열에 대해서 알아보려고 한다.
파이썬으로 문자열을 표현할 수 있는 방법은 아래와 같이 총 4가지가 있다.
str1 = "Hello Python" ##큰 따옴표로 둘러싸기
str2 = 'Life is Good' ##작은 따옴표로 둘러싸기
str3 = """Come grow with us""" ##큰 따옴표 3쌍으로 둘러싸기
str4 = '''No pain, No Gain''' ##작은 따옴표 3쌍으로 둘러싸기
print("str1 의 출력 결과: %s" %str1)
print("str2 의 출력 결과: %s" %str2)
print("str3 의 출력 결과: %s" %str3)
print("str4 의 출력 결과: %s" %str4)
출력 결과는 아래와 같다.
str1 의 출력 결과: Hello Python
str2 의 출력 결과: Life is Good
str3 의 출력 결과: Come grow with us
str4 의 출력 결과: No pain, No Gain
4개 모두 동일한 출력 결과를 보여주고 있다.
그럼 언제 어떤 출력방식을 사용해야 하는지도 알아보자.
str2 = "Life's Good"
print("str2 의 출력 결과: %s" %str2)
Life is Good을 Life's Good으로 바꿔보자.
그렇게 되면 문자열에 작은따옴표가 들어가게 된다.
이럴 때는 작은따옴표를 사용하게 되면 에러가 발생한다.
그렇기 때문에 위와 같이 작은따옴표가 포함될 때는 큰 따옴표를 사용해야 한다. (출력 결과는 생략)
str1 = 'He said "Today is Saturday"'
print("str1 의 출력 결과: %s" %str1)
그럼 반대로 문자열에 큰따옴표를 넣고 싶을 땐 어떻게 해야 할까?
위와 같이 큰따옴표가 포함된 문자열을 작은따옴표로 감싸면 된다.
str1 = "Today is Saturday.\nIt is raining today.\nI like coffee."
print("str1 의 출력 결과: \n%s" %str1)
3개의 문장을 줄 바꿈을 이용해서 출력하려면 위와 같이 '\n'을 사용해서 줄 바꿈을 사용한다.
그런데 위와 같이 할 경우 가독성이 매우 떨어진다.
str1 = """Today is Saturday.
It is raining today.
I like coffee."""
print("str1 의 출력 결과: \n%s" %str1)
하지만 위와 같이 큰 따옴표를 3개 사용해서 소스코드상에서 실제로 줄 바꿈을 하면 가독성도 좋은 문자열로 만들 수 있다.
str1 의 출력 결과:
Today is Saturday.
It is raining today.
I like coffee.
출력 결과는 위와 같다.
이어서 문자열의 연산에 대해서 알아보자
str1 = "Python "
str2 = "is very fun"
str_sum = str1 + str2
print("str_sum 의 출력 결과: \n%s" %str_sum)
문자열 str1과 str2을 2개를 위와 같이 더해서 문자열을 연결할 수 있다.
str_sum 의 출력 결과:
Python is very fun
연결된 문자열은 위와 같다.
str1 = "Python "
str_multi = str1 * 3
print("str_multi 의 출력 결과: \n%s" %str_multi)
그리고 이어서 문자열의 곱하기에 대해서 알아보자.
위와 같이 문자열을 곱할 수도 있다.
str_multi 의 출력 결과:
Python Python Python
출력 결과는 위와 같다.
str_header_tail = "=" *50
str1 = """
File: type.py
Author: Seo
Date: 08-06-2024
"""
str1_sum = str_header_tail + str1 + str_header_tail
print("str1_sum 의 출력 결과: \n%s" %str1_sum)
그럼 지금까지 배운 것들을 응용해서 코드를 작성해 보자
str1_sum 의 출력 결과:
==================================================
File: type.py
Author: Seo
Date: 08-06-2024
==================================================
위와 같이 출력되는데, 파일의 첫 부분을 이와 같이 많이 작성을 한다.
일종의 프로그래머들의 사이에서의 약속이다.
파일 이름이 무엇이며, 누가 작성했고, 언제 작성되었는지 등의 내용을 알기 쉽게 파일의 맨 윗부분에 표시한다.
그럼 이어서 문자열의 인덱스를 확인하고 슬라이스 하는 방법에 대해서 알아보자.
문자열의 인덱스는 말 그대로 몇 번째 문자열인지를 확인하는 것이며 슬라이스 하는 방법은 말 그대로 문자열을 나누는 것을 의미한다.
str1 = "Apple, Banana, Cherry"
str1_len = len(str1)
print("str1의 문자열 길이: %d" %str1_len)
문자열을 구할 때는 len 함수를 사용한다.
출력 결과는 아래와 같다.
str1의 문자열 길이: 21
문자열의 길이는 Apple, Banana, Cherry의 길이를 나타내는데 공백까지 포함하게 되어있다.
시간이 넘쳐흐른다면 문자열의 길이를 실제로 세어보자. 21이 맞다 :)
str1 = "Apple, Banana, Cherry"
print("str1의 0번째 문자: %s" %str1[0])
print("str1의 9번째 문자: %s" %str1[9])
print("str1의 -3번째 문자: %s" %str1[-3])
그럼 이어서 문자열의 인덱스를 확인하는 방법을 알아보자.
str1의 문자열에서 몇 번째 인덱스에는 어떤 문자가 있는지 확인을 해보는 소스 코드이다.
하나의 문자를 확인하는 것이기 때문에 %c를 써도 되고 %s를 써도 상관없다.
str1의 0번째 문자: A
str1의 9번째 문자: n
str1의 -3번째 문자: r
출력 결과는 위와 같다.
파이썬은 C언어와 다르게 배열에 음수를 입력할 수가 있다.
어찌 되었든 인덱스 별로 문자를 출력할 수 있다.
이어서 문자열을 나누는 것을 해보자.
str1 = "Apple, Banana, Cherry"
print("str1의 첫번째 문자열: %s" %str1[0:5])
print("str1의 두번째 문자열: %s" %str1[7:13])
print("str1의 세번째 문자열: %s" %str1[15:21])
위와 같이 세 개의 문자열로 나누려고 하고 있다.
문자열을 나누는 방법은 문자열이름[나눌 문자열의 시작 인덱스:나눌 문자열의 마지막 인덱스-1]이다.
str1의 첫번째 문자열: Apple
str1의 첫번째 문자열: Banana
str1의 첫번째 문자열: Cherry
출력 결과는 위와 같다.
그런데 문자열을 나눌 때 이렇게 직접적으로 숫자를 입력하는 것은 좋은 방법은 아닌 것 같다.
그래서 우리는 find, rfind 함수를 사용해서 좀 더 전문적인 느낌이 나는 코딩 방법으로 나눠보도록 할 것이다.
find 함수와 rfind 함수의 사용방법은 아래와 같다.
문자열.find(찾을 문자열, 시작 index, 마지막 index)
시작 index, 마지막 index는 생략이 가능하다.
해당 문자열이 있을 경우: 0을 return
해당 문자열이 없을 경우: -1을 return
문자열.rfind(찾을 문자열, 시작 index, 마지막 index)
시작 index, 마지막 index는 생략이 가능하다.
해당 문자열이 있을 경우: 문자열의 시작 index를 return
해당 문자열이 없을 경우: -1을 return
그럼 사용방법을 알았으니 소스코드를 작성해 보자.
우리가 사용할 함수는 문자열의 위치를 알아야 하니까 rfind로 문자열의 위치를 찾아서 슬라이싱 해보자.
str1 = "Apple, Banana, Cherry"
str1_len = len(str1)
Banana_index = str1.rfind("Banana")
Cherry_index = str1.rfind("Cherry")
print("str1의 첫번째 문자열: %s" %str1[0:Banana_index-2])
print("str1의 두번째 문자열: %s" %str1[Banana_index:Cherry_index-2])
print("str1의 세번째 문자열: %s" %str1[Cherry_index:str1_len])
소스 코드는 위와 같다.
str1의 첫번째 문자열: Apple
str1의 두번째 문자열: Banana
str1의 세번째 문자열: Cherry
출력된 결과물은 위와 같은데 우리가 원하는 대로 잘 나눠진 것을 확인할 수 있다.
여기까지 문자열 관련된 기본적인 내용들을 알아보았는데
내용이 너무 많아져 2편으로 나눠서 다음 포스팅에서는 문자열 관련 함수를 알아보려고 한다.
'Python' 카테고리의 다른 글
파이썬에서 튜플 사용하는 방법과 리스트와의 차이 (0) | 2024.06.10 |
---|---|
파이썬에서 리스트를 다뤄보자 (0) | 2024.06.08 |
파이썬의 문자열 - 2편(find, rfind, count, strip, replace, split, upper, lower) (1) | 2024.06.08 |
파이썬 숫자의 자료형 (0) | 2024.06.07 |
파이썬과 파이썬 에디터 설치 (0) | 2024.06.06 |