About Python – “문자열 자료형 – String”

About Python – “문자열 자료형 – String”

12월 16, 2021

파이썬의 문자열 자료형 (String)

컴퓨터 프로그래밍에서 문자열은 기호의 순차 수열을 의미합니다. 프로그래밍에서 문자열은 일반적으로 요소가 문자 인코딩과 관련된 문자를 대표하는 일련의 자료값을 저장하고 있는 자료형으로 이해할 수 있습니다.

파이썬에서 문자열을 나타내기 위해서는 다음의 문장을 기억하면 됩니다.

큰 따옴표나 작은 따옴표로 둘러싸거나,

큰 따옴표 세 개나 작은 따옴표 세 개로 둘러싸면 됩니다.

string1 = "this is String1."
string2 = 'this is String2.'
string3 = """this is String3."""
string4 = '''this is Stirng4.'''

print(type(string1))
print(type(string2))
print(type(string3))
print(type(string4))


#<class 'str'>
#<class 'str'>
#<class 'str'>
#<class 'str'>

각각의 경우 모두 이것이 문자열인 것을 확인할 수 있습니다.

파이썬의 이스케이프 시퀀스 (Escape Sequence)

이스케이프 시퀀스는 컴퓨터와 주변 기기의 상태를 바꾸는 일련의 문자열을 의미합니다. 예를 들면, C에서 줄바꿈을 의미하는 이스케이프 시퀀스는 \n 입니다. 파이썬에서도 이스케이프 시퀀스를 제공하는데, 그 종류에 대하여 알아보겠습니다.

이스케이프 시퀀스코드의 역할
\n문자열 안에서 줄을 바꾸는 역할을 합니다.
\t문자열 사이에 tab 간격을 주는 역할을 합니다.
\\문자 \를 표현하는 역할을 합니다.
\”큰 따옴표를 표현하는 역할을 합니다.
\’작은 따옴표를 표현하는 역할을 합니다.

아래는 이스케이프 시퀀스를 사용하는 예제입니다. 줄바꿈을 표현하는 또 다른 방법도 설명해 놓았습니다.

print("안녕하세요.\n이것은 이스케이프 시퀀스를 사용하는 예시입니다. \n좋은 하루 보내세요!")

print("""
파이썬에서 이런 식으로, 이스케이프 시퀀스를 사용하지 않고 줄바꿈을 표현할 수 있습니다.
가독성이 좋고 편하지 않나요?
작은 따옴표 세 개를 사용하거나, 큰 따옴표 세 개를 사용하면 됩니다.
""")


#안녕하세요.
#이것은 이스케이프 시퀀스를 사용하는 예시입니다. 
#좋은 하루 보내세요!

#파이썬에서 이런 식으로, 이스케이프 시퀀스를 사용하지 않고 줄바꿈을 표현할 수 있습니다.
#가독성이 좋고 편하지 않나요?
#작은 따옴표 세 개를 사용하거나, 큰 따옴표 세 개를 사용하면 됩니다.

파이썬에서 문자열 인덱싱하기 (indexing)

파이썬에서는 문자열 인덱싱을 지원합니다. 인덱싱이란 문자열 안에서 원하는 값을 뽑아내는 것을 의미합니다. 다음의 코드를 살펴봅시다.

x = "This is Goddessana_'s Devlog."
print(x[2]) #i 문자열 x의 세 번째 문자
print(x[-2]) #g 문자열 x의 뒤에서 두 번째 문자

문자열이름[숫자] 로 문자열을 인덱싱할 수 있습니다.

파이썬에서 문자열 슬라이싱하기 (Slicing)

슬라이싱은 문자열에서 원하는 연속된 값을 뽑아내는 것을 의미합니다. 예컨대 아래의 코드를 살펴보면..

x = "This is Goddessana_'s Devlog."
print(x[3:10])

문자열이름[숫자:숫자]로 문자열을 슬라이싱할 수 있습니다. 시작 번호나 끝 번호를 생략하면 처음부터 슬라이싱되거나 끝까지 슬라이싱됩니다. 인덱싱과 마찬가지로 슬라이싱의 숫자에도 음수가 들어갈 수 있습니다.

파이썬에서 문자열 포매팅하기 (formatting)

다음은 C언어의 코드인데, 잠시 살펴봅시다.

#include <stdio.h>
int main()
{
  printf("제 몸무게는 %d 킬로그램 입니다.", 65);
}

“제 몸무게는 ~ 킬로그램 입니다.” 라는 문자열 안에 65라는 숫자를 넣고 싶어서 %d 를 사용하고, 끝에 65라는 값을 넣어주었습니다.

파이썬에서도 이와 비슷하게 문자열 포매팅이라는 것을 지원하는데, 문자열 포매팅이란 문자열 안에 특정한 값을 넣는 것을 의미합니다. 아래의 코드를 살펴보겠습니다.

print("This is %s's Devlog." % "Goddessana_")
#This is Goddessana_'s Devlog.

포매팅을 원하는 부분에 %s 와 같은 문자열 포맷 코드를 넣고, 문자열이 끝난 다음 삽입할 문자열을 작성해주었습니다. 여기서는 문자열을 넣기 위해서 %s라는 문자열 포맷 코드를 사용했는데, 정수나 부동 소수 등 여러 가지를 넣을 수 있는 문자열 포맷 코드가 있습니다. 다음은 그것을 나타낸 표입니다.

문자열 포맷 코드코드의 역할
%s문자열을 포매팅할 수 있습니다.
%cCharacter – 문자 한 개를 포매팅할 수 있습니다.
%d정수 값을 포매팅할 수 있습니다.
%f부동 소수점 값을 포매팅할 수 있습니다.
%o8진수 값을 포매팅할 수 있습니다.
%x16진수 값을 포매팅할 수 있습니다.
%%포매팅 시, “%”라는 문자 자체를 나타냅니다.

%s 코드와 숫자를 이용해서 공간을 할당하고 정렬을 사용할 수 있습니다.

print("This is %50s's Devlog." % "Goddessana_")
#This is                                        Goddessana_'s Devlog.

print("This is %-50s's Devlog." % "Goddessana_")
#This is Goddessana_                                       's Devlog.

print("%100d 테스트!" % 20)
#                  20 테스트!

print("%100c 테스트!" % 'a')
#                   a 테스트!

print("%100.2f 테스트!" % 923.23123124328)
#              923.23 테스트!
#100의 의미 : 100칸의 공간 할당, .2f의 의미 : 소숫점 두 번째 자리까지 출력

50칸, 100칸의 공간을 할당하고 바인딩되는 것을 왼쪽, 오른쪽에 정렬한 것입니다. 여러 형식의 자료형들도 적용되는 것을 볼 수 있습니다.

파이썬의 format()함수

format()함수는 파이썬에 내장되어 있는 함수입니다. https://docs.python.org/ko/3/library/functions.html#format 에서 설명을 볼 수 있습니다.

print("저의 벤치프레스 1RM은 {0}kg이고, 데드리프트의 1RM은 {1}kg입니다.".format(100, 120))
# 저의 벤치프레스 1RM은 100kg이고, 데드리프트의 1RM은 120kg입니다.

squat = 210
print("저의 스쿼트 중량은 {}kg 입니다.".format(squat))
#저의 스쿼트 중량은 210kg 입니다.

format() 함수를 사용하는 간단한 예제코드입니다.

파이썬의 len()함수

str = "The example"
print(len(str))

#11

len()함수는 문자열이 총 몇 글자인지를 반환합니다.

파이썬의 count()함수

count()함수는 괄호 안에 들어간 것이 해당 문자열 안에 몇 글자가 포함되어있는지를 반환합니다. 이 함수를 사용하여 아래의 노래 가사에 ‘i’ 라는 문자가 몇 개가 포함되어 있는지 알 수 있습니다.

TheFeels = """Boy, I, boy, I, boy, I know
I know you got the feels
Boy, I, boy, I, boy, I know
Uh, I'm so curious
'Bout you, boy, wanna keep it cool
But I know every time you move, got me frozen
I get so shy, it's obvious (get ya)
Catching feels like butterflies
If I say what's on my mind
"""
print(TheFeels.count('i'))
#9

파이썬의 find()함수, index()함수

각각의 함수들은 괄호 안에 있는 문자가 맨 처음에 언제부터 나왔는지를 반환합니다.

TheFeels = """Boy, I, boy, I, boy, I know
I know you got the feels
Boy, I, boy, I, boy, I know
Uh, I'm so curious
'Bout you, boy, wanna keep it cool
But I know every time you move, got me frozen
I get so shy, it's obvious (get ya)
Catching feels like butterflies
If I say what's on my mind
"""
print(TheFeels.find('boy'))
print(TheFeels.index('g'))
print(TheFeels.find('-'))
print(TheFeels.index('-'))


'''
8
39
-1
Traceback (most recent call last):
  File "/Users/goddessana/Documents/1.py", line 14, in <module>
    print(TheFeels.index('-'))
ValueError: substring not found
'''

동일해 보이지만 차이점은 index()함수는 없는 문자를 찾으면 오류를 발생시킵니다.

Avada Programmer

Hello! We are a group of skilled developers and programmers.

Hello! We are a group of skilled developers and programmers.

We have experience in working with different platforms, systems, and devices to create products that are compatible and accessible.