2장 파이썬 프로그래밍의 기초 [자료형] 

 문자열 자료형

 

- 문자열(String) : 문자, 단어 등으로 구성된 문자들의 집합

- 큰따옴표( " " )로 둘러싸여 있다.

 

- 이스케이프 코드 : 프로그래밍 할때 사용할 수 있도록 미리 정의해 둔 "문자 조합"

코드 설명
 \n 문자열 안에서 줄을 바꿀 때 사용
 \t 문자열 사이에 탭 간격을 줄 때 사용
 \\ 백슬래쉬( \ ) 를 그대로 표한할 때 사용
 \' 작은따옴표( ' ) 를 그대로 표현할 때 사용
 \" 큰따옴표( " ) 를 그대로 표현할 때 사용
 \r 캐리지 리턴(줄 바꿈 문자, 현재 커서를 가장 앞으로 이동)
 \f 폼 피드(줄 바꿈 문자, 현재 커서를 다음 줄로 이동)
 \a 벨 소리(출력할 때 PC 스피커에서 '삑' 소리가 난다)
 \b 백 스페이스
 \000 널 문자

 

- 큰따옴표, 작은따옴표 3개를 사용하는 경우

str = "Python 
is
Easy"

위와 같이 줄바꿈을 사용할 경우 "String literal is unterminated" 오류 발생, 이를 해결하기 위해

str = """Python 
is
Easy"""

와 같이 사용한다. 혹은 여러줄 주석처리 할 때도 큰따옴표 3개( """ ) 를 사용한다.

 

- 문자열 연결하기

파이썬에서는 문자열을 더하거나 곱해서 사용할 수 있다.

head = "Python"
tail = "is Fun!"

print("=" * 20)
print(head + tail)
print("=" * 20)

# 출력결과
"""
====================
Pythonis Fun!
====================
"""

 

- 문자열 길이 구하기 (len 함수)

변수 a에 저장된 문자열의 갯수(공백 포함)를 출력한다.

a = "Life is too short"
print(len(a))   # 출력결과 :17

 

- 문자열 인덱싱(Indexing) : 가리킨다

변수 a에 저장한 문자열의 각 문자마다 번호를 매긴다. 번호는 0부터 시작한다. 그래서 index 0번(첫번째) 문자는 'L'이 되고 다음 index 1번(두번째) 문자는 'i' 가 된다. index 10번은 'o', 20번은 'o', 30번은 't' 가 된다. 그리고 index -1번은 문장의 가장 마지막에 있는 'n' 이 출력되는 것을 볼 수 있다.

a = "Life is too short, You need Python"
print(a[0])   # 출력결과 : L
print(a[1])   # 출력결과 : i
print(a[10])   # 출력결과 : o
print(a[-1])   # 출력결과 : n

"""
Life is too short, You need Python
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
0123456789012345678901234567890123
0         1         2         3 
"""

- 문자열 슬라이싱(Slicing) : 자르다

a = "Life is too short, You need Python"
b = a[0] + a[1] + a[2] + a[3]

print(b)    # 출력결과 : Life

위와 같이 단순하게 출력할 수도 있지만 a [ 시작번호 : 끝번호 ] 와 같은 방식으로 출력할 수 있다.

a = "Life is too short, You need Python"
b = a[0:4]

print(b)    	 # 출력결과 : Life
print(a[19:])    # 출력결과 : You need Python
print(a[:17])    # 출력결과 : Life is too short

a[0:4]는 인덱스 0번부터 4번 전까지 출력하라는 의미다. a[7:] 은 인덱스 7번부터 끝까지, a[:20] 은 처음부터 인덱스20번 전까지 출력하라는 의미다.

 

- 문자열 포매팅(Formatting) : 문자열 안에 어떤 값을 삽입하는 방법

 (1) 포맷 코드를 사용

코드 설명
%s 문자열(String)
%c 문자형(Character)
%d 정수(Integer)
%f 부동소수(floating-point)
%o 8진수
%x 16진수
%% Literal % (문자 %)
# 숫자 대입
format1 = "I eat %d apples." % 3
print(format1)  # 출력결과 : I eat 3 apples.

# 문자열 대입
format2 = "I eat %s apples." % "five"
print(format2)  # 출력결과 : I eat five apples.

# 숫자 변수 대입
numbers = 2
format3 = "I eat %d apples." % numbers
print(format3)  # 출력결과 : I eat 2 apples.

# 여러개 변수 대입
number = 10
day = "three"
format4 = "I eat %d apples. so I was sick for %s days." % (number, day)
print(format4)  # 출력결과 : I eat 10 apples. so I was sick for three days.

# %문자 포함
format5 = "Error is %d%%." % 98
print(format5)  # 출력결과 : Error is 98%.

 

 (2) format() 함수 사용 : 문자열 작성 후 .format(data)

# 숫자 대입
format11 = "I eat {0} apples." .format(3)
print(format11)  # 출력결과 : I eat 3 apples.

# 문자열 대입
format22 = "I eat {0} apples." .format("five")
print(format22)  # 출력결과 : I eat five apples.

# 숫자 변수 대입
numbers = 2
format33 = "I eat {0} apples." .format(numbers)
print(format33)  # 출력결과 : I eat 2 apples.

# 여러개 변수 대입
number = 10
day = "three"
format44 = "I eat {0} apples. so I was sick for {1} days." .format(number, day)
print(format44)  # 출력결과 : I eat 10 apples. so I was sick for three days.

 

(3) f 문자열 포매팅 (파이썬 3.6버전 이상 사용가능)

문자열 앞에 f 접두사를 붙이면 f 문자열 포매팅 기능을 사용할 수 있다.

name = '도깨비'
age = 30

print(f'나의 이름은 {name}입니다. 나이는 {age}입니다.')
# 출력결과 : 나의 이름은 도깨비입니다. 나이는 30입니다.

f 문자열 포매팅은 문자열 안에서 변수와 +, -와 같은 수식을 함께 사용하는 표현식을 사용할 수 있다.

age = 30

print(f'나는 내년이면 {age+1}살이 된다.')
# 출력결과 : 나는 내년이면 31살이 된다.

Key와 Value를 한쌍으로 사용하는 딕셔너리도 사용이 가능하다.

d = {'name': '도깨비', 'age': 30}
# var = { 'key' : value }

print(f'나의 이름은 {d["name"]}입니다. 나이는 {d["age"]}입니다.')
# 출력결과 : 나의 이름은 도깨비입니다. 나이는 30입니다.

- 문자열 함수들

(1) 문자 갯수 세기 (count)

 

(2) 위치 알려주기1 (find)

 

(3) 위치 알려주기2 (index)

 

(4) 문자열 삽입 (join)

 

(5) 소문자를 대문자로 (upper)

 

(6) 대문자를 소문자로 (lower)

 

(7) 공백 지우기 (lstrip, rstrip, strip)

 

(8) 문자열 바꾸기 (replace)

 

(9) 문자열 나누기 (split)

 

 

 

 

 

 

+ Recent posts