데이터 타입과, 문자열데이터(str)을 다루는 기능에 대해 정리합니다.

개요


  • 데이터 타입중 ‘문자열(String)’ 과 관련된 다양한 기능을 정리합니다.

string (문자열)

  • 복수개의 문자를 순서대로 나열 한 것

  • 문자열은 ‘(작은따옴표) 혹은 “(큰따옴표) 사이에 문자를 넣어서 생성

  • 문자열 자체에 ‘, “가 있는 경우에는 각각 그 반대의 기호로 생성

e.g) 문자열이 ‘string’ 이면 -> “ ‘string’ “ // 문자열이 “string” 이면 -> ‘ “string” ‘

’’’ ‘'’사용하여 표현 가능

  • 차이점

    • ’’, “” -> 한줄 문자열 표현

    • ’’’ ‘’’ -> 어려줄에 걸쳐 문자열 표현 가능

문자열 자체에 ‘나 “가 있는 경우

1
a = '"Hello" World'
1
b = "Hello' World"

앞뒤를 ‘나 “로 둘러주지 않으면 에러가 발생한다.

1
c = "Hello World. 
1
print(It's wonderful world")

여러줄로 문자열 표현

1
2
3
4
5
6
7
8
9
c = '''Hello 

World'''

d = """Hello 
World"""

print(c)
print(d)
Hello 

World
Hello 
World

escape string (이스케이프 문자)

  • 문자열내의 일부 문자의 의미를 달리하여 특정한 효과를 주는 문자

  • \n : new line(enter기능) \t : tab 등

1
2
print('Hello World\n\n') # Hello World 출력하고 2번 줄바꿈
print('Ha\thahaha') # Ha 출력하고 1tab만큼 간격 띄우고 hahaha 출력
Hello World


Ha	hahaha

indexing & slicing string (문자열 인덱스 및 추출)

  • 문자열의 각 문자는 순서가 있음

  • 이때 각 문자열의 순서를 인덱스 라고 함

  • 첫번째 문자부터 마지막까지 차례대로의 순서를 가짐

  • 첫번째 시작문자의 순서는 0으로 시작 (1이 아님주의)

  • 예제

문자열의 마지막 문자의 순서의 값 구하기

1
2
3
a = 'Hello World' # 길이 : 11

print(a[10]) # 인덱스번호가 10인 문자열 출력 -> 11개의 문자이고, 0번째 부터 시작 -> 맨 마지막 11번째 문자인 'd'가 출력
d

‘-1’ 인덱스

  • 다른 언어와는 달리, python의 경우 음수 인덱스를 지원

  • -1이 가장 마지막 인덱스를, -2가 마지막에서 두번째 인덱스를 의미

  • 앞에서 시작할때와는 다르게 0부터 시작하지 않는다.

1
2
3
4
5
print(a[0])
print(a[10])

print(a[-1])
print(a[-11])
H
d
d
H

인덱스의 범위

  • 인덱스는 [0, 문자열의 길이) 의 범위만 유효

  • 음수 인덱스를 사용할 경우, [-문자열의 길이, -1]

  • 범위를 넘어갈 경우 에러 발생

1
2
# print(a[11])
print(a[-12])

문자열 slicing

  • 인덱스가 하나의 문자만을 추출한다면,

  • slicing은 부분 문자열을 추출한다고 볼 수 있음

  • 변수[시작:끝]와 같이 명시하여 [시작, 끝] 에 해당하는 부분 문자열을 추출

  • 시작, 끝 인덱스가 생략이 되어 있다면, 0부터 혹은 끝까지로 간주

1
2
3
4
5
6
7
8
9
a = 'Hello world'

print(a[0:11])
print(a[0:1])

print(a[:5]) #0부터 5번째 인덱스
print(a[3:]) #3번째 인덱스 부터 맨 끝까지

print(a[:]) #모든 인덱스 
Hello world
H
Hello
lo world
Hello world

문자열 함수

  • 문자열은 여러가지 기능 제공을 위한 함수를 내장하고 있음.

  • 함수란 특정 기능을 하는 코드로 언제든지 호출하여 해당 기능을 사용 가능하도록 구성한 코드

  • 함수에 대한 자세한 내용은 ____에서 다를 예정

upper() 대문자로 변환

1
2
a = 'hello world'
a.upper() 
'HELLO WORLD'

replace()

  • 문자열 내의 특정 문자를 치환
1
2
a = 'hello world'
a.replace('h', 'j') #h를 j로 치환
'jello world'

하나의 변수에 동일 문자가 여러개라면 모두 변환되니 주의!

1
2
b = 'hello'
b.replace('l','k')
'hekko'

format()

  • 문자열내의 특정한 값을 변수로부터 초기화하여 동적으로 문자열을 생성

  • 값이 출력될 변수를 {}로 표현하고, 해당 변수들은 format() 에 입력해준다.

1
2
3
4
5
temperature = 25.5
prob = 80.0

a = '오늘 기온{}도 이고, 비올 확률은 {}% 입니다.'.format(temperature, prob)
print(a)
오늘 기온25.5도 이고, 비올 확률은 80.0% 입니다.

split

  • 문자열을 특정한 문자를 기준으로 구분하여(delimiter) 문자열의 리스트로 치환
1
2
a = 'hello world what a nice weather'
a.split('w')  #a 변수를 'w'를 기준으로 구분하여 리스트로 변환
['hello ', 'orld ', 'hat a nice ', 'eather']

댓글남기기