본문 바로가기
백엔드(Back-End)/Python

[Python] - 자료형 - 문자열(String)

by TwoJun 2022. 8. 12.

[Programming Language] - Python

 

 

 

이번 포스팅에선 Python의 자료형 중 하나인 문자열(String), 문자열을 처리할 수 있는 인덱싱(Indexing), 슬라이싱(Slicing), 문자열 처리에 대한 여러 가지 함수에 대해 알아보겠습니다.

 

1. 수 - 정수형(Integer), 실수형(Float), 복소수(Complex number)

2. 문자열(String)

3. Boolean 타입 (True, False)

4. 리스트(List)

5. 튜플(Tuple)

6. 딕셔너리(Dictionary)

7. 집합(Set)

 

 

 

1. 문자열(String)

- 문자열(String) 자료형이란, 하나 이상 연속된 문자들의 나열을 의미합니다.

- 작은 따옴표(') 또는 큰 따옴표(")로 묶어서 문자열을 나타낼 수 있습니다.

# 문자열을 큰 따옴표로 묶은 경우
a = "Python is fun" 
print(a)     # Python is fun

 

 

 

1-2. 문자열 안에 작은 따옴표 또는 큰 따옴표 추가하기

- 작은 따옴표 추가 : \'

- 큰 따옴표 추가 : \"

# 작은 따옴표로 묶고 한 번 더 작은 따옴표를 사용한 경우
b = 'Python\'s fun'
c = "\"wonjun\""
print(b)     # Python's fun
print(c)     # "wonjun"

 

 

1-3. 문자열 이스케이프(Escape) 코드 

- 문자열에서 여러 줄의 문장을 처리할 때 유용하게 사용된다. 대표적으로 \n, \t가 있다.

(1) \n : 문자열 마지막에 사용 시, 해당 코드를 기준으로 줄 바꿈 시행

(2) \t : 문자열 마지막에 사용 시, 해당 코드를 기준으로 탭 간격 띄어쓰기 시행

# 이스케이프 코드 \n
b = 'Life is too short \n you need python.'
print(b)    

'''Life is too short
 you need python.'''

 

 

 

 

 

2. 문자열 자료형의 여러 가지 특징 

- 문자열끼리 더하기(Concatenation)가 가능하다.

- 동일한 문자열을 반복할 수 있다.

- 파이썬은 문자열 자료형에 대해 인덱싱(Indexing)과 슬라이싱(Slicing)을 지원한다.

 

 

2-1. 문자열끼리 더하기(Concatenation)

# 문자열끼리 더하기
a = "Python "
b = "is powerful"
print(a + b)    # Python is powerful

 

 

2-2. 문자열 반복

# 문자열 반복하기
a = "python "
print(a * 10)    # python python python python python python python python python python

 

 

 

 

3. 문자열 인덱싱(Indexing)

- 특정 문자열에 존재하는 Index number를 통해 문자열 하나 하나의 요소(문자)에 접근하는 것을 의미한다.
 
- 문법 : (문자열이 저장된 변수)[Index number]

 

3-1.

- 문자열 인덱싱(Indexing)에서 0번 째 인덱싱은 첫 번째 문자를 나타낸다.

- 오른쪽으로 갈수록 인덱스 카운트가 증가한다.

a = "python is powerful language."
print(a[0])     # p
print(a[3])    # e

 

 

3-2. 

- 인덱스 넘버가 -1인 경우 0번 째 인덱스를 기준으로 역순이다.

- 인덱스 카운트가 음수인 경우 왼쪽으로 갈수록 인덱스 카운트가 감소한다.

a = "python is powerful language."
print(a[-1])    # .
print(a[-2])    # e

 

 

 

3-3.

- 공백 문자도 인덱싱에 포함된다.

a = "python is powerful language."
print(a[6])    #

 

 

 

 

 

4. 문자열 슬라이싱(Slicing)

- 특정 문자열 내에서 구간을 정하고, 그 구간에 해당하는 값을 잘라내어 추출하는 것을 의미한다.

- 문법 : 문자열이 저장된 변수명[n:m:s]

-  n : 슬라이싱 시작 위치  /  m : 슬라이싱 범위(미만)  /  s : 슬라이싱 간격

 

 

4-1.

- s가 공백이면, 슬라이싱 간격없이 모두 슬라이싱한다.

a = "python is powerful language."
print(a[0:5:])     # pytho

 

 

4-2.

- n이 공백이면, 첫 번째 문자열부터 슬라이싱한다.

a = "python is powerful language."
print(a[:7:2])    #  pto

 

 

4-3.

- m이 공백이면 전체 문자열을 슬라이싱한다.

a = "python is powerful language."
print(a[0::])    # python is powerful language.

 

 

4-4.

- 공백 문자도 슬라이싱에 포함된다.

a = "python is powerful language."
print(a[0:7:6])    # p

 

 

4-5.

- 슬라이싱에서도 음수값을 줄 수 있으며 왼쪽부터 읽는다.

b = "1234567890"
print(b[::-2])     # 08642

 

 

 

 

 

5. 문자열 Formatting(형식화)

- 파이썬에서는 복잡한 형태의 문자열을 출력하기 위해서 형식화 기능을 지원합니다.

- 다음과 같이 두 가지 방법으로 형식화할 수 있습니다.

 

5-1. 형식 지정자 %를 사용하여 Formatting

- 다수의 문자열 형식화가 필요한 경우 % 옆에 () 괄호를 이용하여 표기

- 문자열 포맷팅 코드로는 대표적으로 %d(정수), %f(실수), %s(문자열), %c(문자)가 있다.

a = "나의 이름은 %s이고 나이는 %d살입니다." % ("wonjun", 25)
print(a)    # 나의 이름은 wonjun이고 나이는 25살입니다.

 

아래와 같이 변수로도 형식화할 수 있습니다.

# 1. 변수로 지정해 줄 수도 있다.
name = "wonjun"
age = 25;
a = "나의 이름은 %s이고 나이는 %d살입니다." %(name, age)
print(a)    # 나의 이름은 wonjun이고 나이는 25살입니다.

 

 

 

5-2. format() 함수를 사용하는 방법 (매개변수 사용)

- 문법 : .format(var1, var2, ... var n)

#2. format() 메서드를 사용하는 방법 (변수로 지정)
name = "wonjun"
age = 25
a = "나의 이름은 {}이고 나이는 {}살입니다." .format(name, age)
print(a)    # 나의 이름은 wonjun이고 나이는 25살입니다.

 

 

5-3.) 소수점을 표현하는 방법

- 문법 : %.nf : 소수점 n자리까지 표현 가능

a = "원주율 PI는 %.2f입니다." % 3.141592
print(a)    # 원주율 PI는 3.14입니다.

 

 

 

 

6. 문자열(String)을 처리할 수 있는 여러 가지 함수

 

6-1. 

- count() : 문자열에서 특정 문자값의 개수를 반환하는 함수

- 문법 : 문자열이 저장된 변수명.count()

# count()
a = "Hi Python! my name is wonjun."
print(a.count("n"))    # 4
print(a.count("."))    # 1

 

 

6-2.

- find() : 문자열에서 특정 문자, 문자열의 개수를 반환하는 함수

- 문법 : 문자열이 저장된 변수명.find("특정 문자 또는 문자열")

- 매개변수로 들어간 문자를 탐색할 수 없는 경우 -1을 반환합니다.

# find()
a = "Hi Python! my name is wonjun."
print(a.find("."))    # 28
print(a.find("P"))    # 3

# 탐색할 수 없는 문자열에 대해선 -1 반환
print(a.find("x"))    # -1

 

 

6-3. 

- join() : 특정 문자값을 기준으로 join 함수의 매개변수로 들어간 문자열에 대하여 문자 하나 하나 사이에  특정 문자값을 삽입하는 함수

- 문법 : 삽입할 문자열의 변수명.join(문자열이 저장된 변수명)

# join()
a = "."
b = "Python"
print(a.join(b))    # P.y.t.h.o.n

 

 

6-4.

- upper() : 소문자로 이루어진 문자열을 대문자로 반환하는 함수 

- 문법 : 문자열이 저장된 변수명.upper()

# upper()
a = "python is fun"
print(a.upper())    # PYTHON IS FUN

 

 

6-5.

- lower() : 대문자로 이루어진 문자열을 소문자로 반환하는 함수

- 문법 : 문자열이 저장된 변수명.lower()

# lower()
a = "python is fun"
print(a.lower())     # python is fun

 

 

6-6.

- replace() : 특정 문자열을 다른 문자열로 바꾼 후 반환하는 함수

- 문법 : 문자열이 저장된 변수명.replace("변경 대상 문자열", 변경할 문자열")

# replace()
a = "Java source code is short"
print(a.replace('Java', 'Python'))   # Python is too long source code.

 

 

6-7.

- split() : 특정 문자열을 공백 기준으로 나누어 리스트(List)에 저장한 후 반환하는 함수

- 문법 : 문자열이 저장된 변수명.split()

# split()
a = "Java source code is short"   
print(a.split())     # ['Java', 'source', 'code', 'is', 'short']

 

6-8.

- strip() : 문자열의 양쪽 공백을 제거하는 함수

- 문법 : 문자열이 저장된 변수명.strip()

# strip()
a = "     python is fun       "
print(a.strip())    # python is fun

 

 

 

 

이번 포스팅에선 Python의 데이터 타입 중 하나인 문자열(String) 자료형에 대해 알아보았습니다.

다음 포스팅에선 리스트(List) 자료형에 대해 알아보겠습니다.

======================================================================

해당 포스팅에 대해 내용 추가가 필요하다고 생각되면 기존 포스팅 내용에 다른 내용이 추가될 수 있습니다.

개인적으로 공부하며 정리한 내용이기에 오타나 틀린 부분이 있을 수 있습니다.

이에 대해 지적해 주시면 감사하겠습니다.

 

댓글