본문 바로가기
[파이썬]/자료형

[파이썬][자료형] 문자형

by sung min_Kim 2023. 11. 4.

 

문자형

문자형은 문자형태로 이루어진 자료형이다.


문자열 표현 방법

 

 파이썬에서는 문자를 표현할 때 크게 세 가지 방법을 사용하는데 '작은따옴표', "큰따옴표", '''삼중 따옴표'''를 사용한다.

 '작은따옴표' ,  "따옴표"  모두 문자열로 인식한다. 가독성을 위해 일관되게 사용하는 것을 권장한다.
a = 'Hi, my name is sungmin'
b = "Hi, my name is sungmin"
print(a, b) # Hi, my name is sungmin 출력

 

 ''''삼중 따옴표'''를 사용하여 여러 줄에 작성된 문자열을 나타낼 수도 있다.
a = '''
Hi, my name is sungmin
How are you?
I'm fine.
'''
# 따옴표가 포함된 문자열 또한 인식

 


 문자열 연산

 

 문자열 또한 연산기호를 사용하여 표현이 가능하다. 

· 더하기 +  연산자를 사용하여 문자열끼리 연결할 수 있다.
a = '1'
b = '1'
print(a + b) # 11 출력

 

 문자와 숫자를 조합하여 하나의 문자열로 나타낼 수도 있다. 다만, 타입에 주의하도록 하자.

· 타입이 일치하지 않아 TypeError 발생
a = 'lucky'
b = 7
print(a + b) # TypeError 오류 발생
int 타입의 숫자를 str 타입으로 변환시켜 주면 오류는 해결된다.
a = 'lucky'
b = 7
b = str(b)
print(a + b) # lucky7 반환

 

· 곱하기  * 연산자를 사용하여 문자열을 배로 출력할 수 있다.
a = 'A'
print(a * 3) # AAA 출력

 


문자열 포맷팅

 

 문자열 포맷팅이란 문자열 안에 변수를 삽입함으로써 원하는 값을 나타내는 도구이다.

 이를 활용함으로써 동적인 문자열을 출력할 수 있다.

· 예를 들어 카페에서 주문을 받는 상황이라고 생각해 보자.

 고객이 주문을 할 때마다 'XX 님의 YY 를 준비하겠습니다.' 라는 문장을 만들어야 한다면, 'XX' 에는 고객의 이름, 'YY' 에는 고객이 주문한 메뉴가 들어가야 할 것이다.

 이럴 때 문자열 포맷팅을 사용하면, '님의 를 준비하겠습니다.' 라는 문장을 만들고 'XX' 와 'YY' 의 자리에
고객의 이름과 메뉴를 삽입함으로써 고객이 주문할 때마다 동적으로 문장을 생성할 수 있게 된다.

 

name = '홍길동'
menu = '아메리카노'
print(f'{name}님의 {menu}를 준비하겠습니다.') # 홍길동님의 아메리카노를 준비하겠습니다. 출력

 


문자열 추출

 

인덱싱과 슬라이싱을 활용해 문자열에서 원하는 요소를 추출할 수 있다.

· 인덱싱 : 문자열에서 한 개의 요소를 추출
· 슬라이싱 : 문자열에서 여러 개의 요소를 한번에 추출
a = 'Hi, my name is sungmin'

print(a[0]) # 'H' 추출

print(a[-1]) # 'n' 추출

print(a[0:2]) # 'Hi' 추출

print(a[4:]) # 'my name is sungmin' 추출

print(a[:4]) # 'Hi,' 추출

 


문자열 함수

 

 파이썬은 문자열을 다루는데 유용한 함수들을 제공한다.

 (사용 빈도가 높은 함수는 * 별 표시로 표기해 두었고, 찾는 함수가 있다면 Cnt + F 로 확인하길 바란다.)

· * len() : 'length' 의 줄임말로, 문자열의 길이를 반환하는 함수이다.
a = 'Hi, my name is sungmin'

print(len(a)) # 22 반환

 

· str.count() :  문자열 내의 특정 문자열 개수를 반환하는 함수이다.
a = 'hi, my name is sungmin'

print(a.count('name')) # 1 반환

 

· str.find() : 문자열 내의 특정 문자열을 탐색해 주는 함수이다.
a = 'hi, my name is sungmin'

print(a.find('name')) # 7 반환

 

·  *  str.strip() : 문자열의 공백을 제거해 주는 함수이다.
a = '      hi, my name is sungmin      '

a.lstrip() # 'hi, my name is sungmin      ' 반환
a.rstrip() # '      hi, my name is sungmin' 반환

 

· str.upper() : 문자열을 대문자로 변환하는 함수이다.
a = 'Hi, my name is sungmin'

print(a.upper()) # HI, MY NAME IS SUNGMIN 반환

 

· str.lower() : 문자열을 소문자로 변환하는 함수이다.
a = 'HI, MY NAME IS SUNGMIN'

print(a.lower()) # hi, my name is sungmin 반환

 

· * str.join() : 문자열에 특정 문자열을 삽입하는 함수이다.
a = 'hi, my name is sungmin'

print(a + ''.join(' Kim')) # hi, my name is sungmin Kim 반환

 

·  *  str.replace(old, new) : 문자열 내의 old 문자열을 new 문자열로 변환시켜 주는 함수이다.
a = 'hi, my name is sungmin'

print(a.replace('hi', 'Hello')) # Hello, my name is sungmin 반환

 

· * str.split() : 문자열을 분리하고, 분리된 문자열을 리스트로 반환하는 함수이다.
a = 'hi, my name is sungmin'

print(a.split())         # ['hi,', 'my', 'name', 'is', 'sungmin'] 반환
print(type(a.split()))   # <class 'list'>

· * input() : 사용자가 입력한 데이터를 문자열로 반환하는 함수이다.
name = input('이름을 입력해주세요:')  # 홍길동 입력
print('안녕하세요, ' + name + '님!') # 안녕하세요, 홍길동님! 반환
print(type(name))                   # <class 'str'> 반환
input 함수를 통해 반환된 데이터는 기본적으로 문자열이다. 
숫자로 사용하려면 int 혹은 float 타입으로 형 변환을 해주어야 한다.
단, 파이썬에서는 숫자형과 문자형을 직접 더하는 연산은 허용되지 않는다.
· 타입이 일치하지 않아 TypeError 발생
age = input('나이를 입력해주세요:')  # 20 입력
age = int(age)                     # str -> int 형변환
print(age + '살')                  # TypeError 오류 발생
int 타입을 '살' 과 같은 str 타입으로 형 변환하면 오류는 해결된다.
age = input('나이를 입력해주세요:')  
age = int(age)                  
print(str(age) + '살')             # 20살 반환
print(type(age))                  # <class 'int'> 반환

 


 

파이썬에서의 문자형에 대해 알아보았다.

파이썬은 데이터의 타입을 확인하면서 코딩하는 작업이 정말 중요하다고 한다.

 

예를 들면

더하기 연산자는 숫자 타입에서는 덧셈을 수행하지만, 문자에서는 문자를 연결하는 기능을 수행한다.

함수와 메소드에서는 특정 타입의 인자를 요구하기도 해서 타입을 잘 파악하고 있어야 원하는 동작을 수행하도록 할 수 있다.

 

이처럼 타입을 확인하는 작업은 사소하지만 중요하다.

코드의 흐름이나 이해 또한 기를 수 있다고 생각하기에 틈틈이

타입을 확인하는 습관을 기르도록 해야겠다.

 

다음 글에서는 배열, 리스트에 관해 알아보도록 하자.

'[파이썬] > 자료형' 카테고리의 다른 글

[파이썬][자료형] 집합  (0) 2023.11.05
[파이썬][자료형] 불리언  (0) 2023.11.05
[파이썬][자료형] 딕셔너리  (0) 2023.11.05
[파이썬][자료형] 배열  (0) 2023.11.04
[파이썬][자료형] 숫자형  (0) 2023.11.03